初学者,关于string.Length的问题

tyh 2007-01-21 12:41:02
为什么"中文".Length是2啊,而不是4。
按MSDN说明“Length 属性返回此实例中 Char 对象的个数,而不是 Unicode 字符个数。”,一个Char难道即可是一个双字节的汉字,又能可能是一个单字节的字符?
有什么方便的方法准确判断字符串的字节长度?
...全文
246 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhwyss 2008-07-11
  • 打赏
  • 举报
回复
"中1文" 的Length=3
晨星 2007-01-21
  • 打赏
  • 举报
回复
至于你所说的“字节长度”,这个跟编码有关,如果是Unicode编码,那么字节长度一般就是字符串长度的2倍,不用算。
如果你是问它所对应的多字节字符串的长度,那么你也要说明你是用哪种编码方式(比如,我不是很清楚,GBK跟BIG5对于中英文混排的处理是不是一样的),然后,通过一些转换工具把C#的字符串转换成那种编码的byte数组,再求长度。
runrunrun 2007-01-21
  • 打赏
  • 举报
回复
C#里的 char 就是unicode字符
要获得字节长度,可以 Encoding.XXX.GetByte("XXX").Length
晨星 2007-01-21
  • 打赏
  • 举报
回复
C#中的字符串就是Unicode的呀。C#中的char是两个字节,byte才是一个字节。但byte不是用来表示字符的,char才是用来表示字符的。
ice_frank 2007-01-21
  • 打赏
  • 举报
回复
是对的

111,109

社区成员

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

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

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