用char[]存一个中文字,每个元素的为负数是如何得出来的
用char[]存一个中文字,每个元素的为负数是怎么得出来的?
![用char[]存一个中文字,每个元素的为负数是如何得出来的 用char[]存一个中文字,每个元素的为负数是如何得出来的](/default/index/img?u=aHR0cDovL3d3dy5teWV4Y2VwdGlvbnMubmV0L2ltZy8yMDE0LzA2LzIxLzE5MjMwMTM3Ny5qcGc=)
C++里我用char[]一个汉字“我”,然后调试的时候发现char[]数组里的前两个元素都是负数(最后一个是结束的'\0'我知道),这两个负数值是怎么得出来的?
使用的是VS2010的Win32控制台项目,默认就是使用UNICODE的了。我去查了一下UNICODE表,“我”字UNICODE编码是6211,但无论我化成二进制怎么弄,6211都搞不出-50和-146来,求解
------解决方案--------------------
-50 --> 0xce
-46 --> 0xd2
百度一下“我 ced2”,就可以看出这是GB2312
------解决方案--------------------
http://blog.****.net/leonardwang/article/details/5972776
http://m.blog.****.net/blog/gotomic/16851317
------解决方案--------------------
项目设置里的UNICODE指的是所有API和MFC相关使用UNICODE版本,也就是后缀带W的版本
如果要指定使用UNICODE字符串,wchar_t a[] = L"我";这条语句和项目设置里的UNICODE一点关系都没有
C++里我用char[]一个汉字“我”,然后调试的时候发现char[]数组里的前两个元素都是负数(最后一个是结束的'\0'我知道),这两个负数值是怎么得出来的?
使用的是VS2010的Win32控制台项目,默认就是使用UNICODE的了。我去查了一下UNICODE表,“我”字UNICODE编码是6211,但无论我化成二进制怎么弄,6211都搞不出-50和-146来,求解
------解决方案--------------------
-50 --> 0xce
-46 --> 0xd2
百度一下“我 ced2”,就可以看出这是GB2312
------解决方案--------------------
http://blog.****.net/leonardwang/article/details/5972776
http://m.blog.****.net/blog/gotomic/16851317
------解决方案--------------------
项目设置里的UNICODE指的是所有API和MFC相关使用UNICODE版本,也就是后缀带W的版本
如果要指定使用UNICODE字符串,wchar_t a[] = L"我";这条语句和项目设置里的UNICODE一点关系都没有