首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

cout为啥能处理汉字

2013-04-09 
cout为何能处理汉字?cout是ANSI版的,它处理字符串应该是以字节为单位的,而一个汉字占2个字节,cout竟然能正

cout为何能处理汉字?
cout是ANSI版的,它处理字符串应该是以字节为单位的,而一个汉字占2个字节,cout竟然能正常输出汉字?

另:前段时间在c++代码里面把汉字直接打包成二进制数据,通过socket发给别人,然后别人问我用的是发来的消息用的是什么编码?我茫然了,说是ansi吧,但是发过去的汉字,别人输出是乱码,说是宽字节的吧,但程序中确实不是用宽字节来处理的。如果对方用的是c++,直接输出,倒也能正常显示,但人家用的是java,输出是乱码。

求大神指教。 c++ 汉字
[解决办法]
java默认用的是unicode, 而cout输出的文字,如果你在程序中转过码,那么你发的消息的编码就是你那个代码文件的编码。查看文件的编码,linux下可以使用file命令来看。使用iconv命令可以为你的文件转码。你试下把你的代码源文件转成utf-8的,重编译程序。然后再发给人家
[解决办法]
学习了。这个平时还真没注意,
[解决办法]

引用:
研究了一天,终于搞懂了。程序里面的字符串的编码方式是由操作系统当前代码页决定的,windows默认的代码页是936即GB2312,通过在cmd打chcp命令可查,linux下一般为UTF-8,响应命令为locale。
解释:
因为程序里面的常量字符串是存储在代码里面的,即一定存在于生成的可执行文件里面的某个地方,所以该字符串的编码方式取决于可执行文件的编码方式,而可执……
牛逼!

热点排行