这个函数为什么工作不正常?
以下是一段截取字符串的函数代码,不知怎地不能正确的截取,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查下‘卫生部关于进一步加强 '的长度