关于在C#中如何算字符串的字节长度问题?急...在线等候高手...

ccwq 2004-03-14 01:39:23
我想在一个表格里显示一个文件名..但是文件名太长了,可是用SubString截取长度的是不分中英文的,

string strZH="十二个字十二个字十二个字";
string strEN="sssssssssssssssssssssss";
int intZH=strZH.SubString(0,12);
int intEN=strEN.SubString(0,12);
本来strZH与strEN实际的表现长度是相同的,但是strEN却被截掉一半了?
请教高手,如何按字节长来截取字符串?
...全文
449 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccwq 2004-03-14
  • 打赏
  • 举报
回复
呵呵..谢谢..先结帖了..
生活真美好 2004-03-14
  • 打赏
  • 举报
回复
gz
tavor 2004-03-14
  • 打赏
  • 举报
回复
晕,我这里没加括号,就显示不对齐了,你参看上面的原值比较是对齐了,搞了半晚上才搞出来,狂晕
tavor 2004-03-14
  • 打赏
  • 举报
回复
private string getCountStr(string str,int count)
{
byte [] bwrite=Encoding.GetEncoding("GB2312").GetBytes(str.ToCharArray());
if(bwrite.Length>=count)
return Encoding.Default.GetString( bwrite,0,count);
else return Encoding.Default.GetString(bwrite);
}
上面的这个方法就可以获得一个字符串中相应的字节数的子串。

比如:
str1="这是一个好人吗?" ;
str2="abcdefghijklmn";
分别调用上述函数,
str1=getCountStr(str1,12);
str2=getCountStr(str2,12);
就会返回
str1的值为 这是一个好人
str2的值为 abcdefghijkl


老大,写的够详细了吧。呵呵,快结帖给分吧

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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