日期:2014-05-18  浏览次数:20447 次

这个函数为什么工作不正常?
以下是一段截取字符串的函数代码,不知怎地不能正确的截取,Why?

      public   string   SubStr(string   sString,   int   nLeng)
        {
                if   (sString.Length   <=   nLeng)
                {
                        return   sString;
                }
                int   nStrLeng   =   nLeng   -   3;
                string   sNewStr   =   sString.Substring(0,   nStrLeng);
                sNewStr   =   sNewStr   +   "... ";
                return   sNewStr;
        }

若sString给值: '献血和输血的伦理规范 '   和给值: '卫生部关于进一步加强 ',nLeng参数都是10的话,分别显示的是: '献血和输血的伦理规范 '和 '卫生部关于进一... '。这到底是怎么回事啊?谢谢指教。

------解决方案--------------------
函数没问题,我试过了。
是不是传字符串的时候代空格了,影响字符串长度了?
------解决方案--------------------
那是因为中文编码有关,如果是英文是不会有这种问题的
------解决方案--------------------
测试结果: '卫生部关于进一步加强 '返回 '卫生部关于进一步加强 ';是楼主自己的配置有问题!web.config中 <globalization
requestEncoding= "utf-8 "
responseEncoding= "utf-8 "
/>
------解决方案--------------------
<globalization
requestEncoding= "gb2312 "
responseEncoding= "gb2312 "
/>
------解决方案--------------------
有个能是空格,建议你去单独的用个label查下‘卫生部关于进一步加强 '的长度