黑马程序员技术交流社区

标题: 关于汉字在c和c#中的区别? [打印本页]

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

作者: xiaoxiang_04    时间: 2013-2-23 21:40
这跟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
所以看你想要什么长度了,是字节长度还是字符长度
作者: 彭思    时间: 2013-2-23 22:18
xiaoxiang_04 发表于 2013-2-23 21:40
这跟C#和C应该没关系
这是C#代码
string str="彭思";

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

可以理解一个汉字占两个字节,英文字母占一个字节,我说哪个长度,一个输出字节长度,一个输出字符串长度,所以在字节长度中汉字长度是2,你理解的没错




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2