A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 彭思 中级黑马   /  2013-2-23 21:08  /  1533 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

之前在学校学c语言的时候,我记得c语言中一个汉字是占两个字符(好像没记错吧),而在c#中一个汉字占一个字符,为什么会有这样的区别,这跟编程的语言有关或者是跟unicode码和ascii码有关?木懂这个问题,还是我记错了?

3 个回复

倒序浏览
这跟C#和C应该没关系
这是C#代码
string str="彭思";
int i= System.Text.Encoding.Default.GetBytes(str).Length;\\GetBytes 就是返回字节,所以一个汉字占2个字节,所以长度为4
int j=str.Length;\\单纯的字符长度所以 长度为2
j=2,i=4
所以看你想要什么长度了,是字节长度还是字符长度
回复 使用道具 举报
xiaoxiang_04 发表于 2013-2-23 21:40
这跟C#和C应该没关系
这是C#代码
string str="彭思";

一个字符是占一个字节的吧,那么一个汉字占两个字节,我可以理解为一个汉字相当于两个字符么?还是他只是存储意义上的?已经彻底凌乱了。。。。分不清了。。。。额。。。把自己给搅晕了。。。
回复 使用道具 举报
彭思 发表于 2013-2-23 22:18
一个字符是占一个字节的吧,那么一个汉字占两个字节,我可以理解为一个汉字相当于两个字符么?还是他只是 ...

可以理解一个汉字占两个字节,英文字母占一个字节,我说哪个长度,一个输出字节长度,一个输出字符串长度,所以在字节长度中汉字长度是2,你理解的没错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马