这个函数为什么工作不正常?

foxd 2007-09-14 12:46:10
以下是一段截取字符串的函数代码,不知怎地不能正确的截取,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的话,分别显示的是:'献血和输血的伦理规范'和'卫生部关于进一...'。这到底是怎么回事啊?谢谢指教。
...全文
115 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
foxd 2007-09-14
  • 打赏
  • 举报
回复
也就是说,无法使返回的字符串定长。
kyouken2007 2007-09-14
  • 打赏
  • 举报
回复
lz:
字符串长度确实没问题吗?
我在我机器上试过是没问题的,我的还是日文环境
tianqining 2007-09-14
  • 打赏
  • 举报
回复
有个能是空格,建议你去单独的用个label查下‘卫生部关于进一步加强'的长度
foxd 2007-09-14
  • 打赏
  • 举报
回复
to 乘凉:
试了一下,没用的。
kyouken2007 2007-09-14
  • 打赏
  • 举报
回复
<globalization
requestEncoding="gb2312"
responseEncoding="gb2312"
/>
foxd 2007-09-14
  • 打赏
  • 举报
回复
to 张家:
把以下代码放在web.config文件中运行后还报错,不知是否代码有误?

<globalization>
requestEncoding="utf-8"
responseEncoding="utf-8"
</globalization>
vlysses 2007-09-14
  • 打赏
  • 举报
回复
页面不要用GB2312
vlysses 2007-09-14
  • 打赏
  • 举报
回复
测试结果:'卫生部关于进一步加强'返回'卫生部关于进一步加强';是楼主自己的配置有问题!web.config中<globalization
requestEncoding="utf-8"
responseEncoding="utf-8"
/>
foxd 2007-09-14
  • 打赏
  • 举报
回复
就是中文哪,该怎么办呢?
zqm2000 2007-09-14
  • 打赏
  • 举报
回复
那是因为中文编码有关,如果是英文是不会有这种问题的
kyouken2007 2007-09-14
  • 打赏
  • 举报
回复
函数没问题,我试过了。
是不是传字符串的时候代空格了,影响字符串长度了?

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧