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

关于c++中unicode编码的一个刺手有关问题,待,

2012-02-11 
关于c++中unicode编码的一个刺手问题,在线等待,,,,,,,,,,,,,!大家好,众所周知,c++中内部用的是unicode编码

关于c++中unicode编码的一个刺手问题,在线等待,,,,,,,,,,,,,!
大家好,众所周知,c++中内部用的是unicode编码格式,小弟现生一疑问,还请大家帮忙解决如下:
刚才我通过在dos命令行下输入:charmap得到汉字 "兵 "在unicode编码格式中的十六进制为:5175   转换成10进制为:20853
char   c=0x5175;
cout < <c < <endl;//这是肯定不行的,因为已经超过了8位,c++中规定char类型最多只有八位,这样说对吗?

string   c=20853;
cout < <c < <endl;//此时我想输出汉字 "兵 "但是编译都通不过去.
请问应当如何修改,才能把20853转换成汉字 "兵 "呢?

[解决办法]
c++中内部用的是unicode编码格式 ??
不是吧
vc下
int main(int argc, char* argv[])
{
wchar_t x[2] = {0x5175};
MessageBoxW(0,x,0,0);
char out[8]={0};
setlocale(LC_ALL, "chs ");
wctomb( out , x[0] );
cout < < out < <endl;
return 0;
}
[解决办法]
标准C++默认是 ANSI 编码的。

当然可能这个编码还和使用的环境有点关系,
比如 VC6.0 是默认 ANSI编码,
但是 VS03/05 都是默认 Unicode 编码的

热点排行