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

在Unicode条件下"中国"的内码是:0xd0d6,0xfab9,而在MBCS时是0x4e2d, 0x56fd,请教怎么互相转换

2012-02-02 
在Unicode条件下中国的内码是:0xd0d6,0xfab9,而在MBCS时是0x4e2d, 0x56fd,请问如何互相转换在Unicode条

在Unicode条件下"中国"的内码是:0xd0d6,0xfab9,而在MBCS时是0x4e2d, 0x56fd,请问如何互相转换
在Unicode条件下 "中国 "的内码是:0xd0d6,0xfab9,而在MBCS时是0x4e2d,   0x56fd,请问如何互相转换
我写的程序是Unicode的,但在读取一个ANSI的字符串进行比较时出了问题,两个相同的字符串由于采用了不同内码而不能正确的比较,所以我想将其中一个汉字的内码进行转换以便于比较。

[解决办法]

#include <stdio.h>
#include <windows.h>

wchar_t s1[] = L "中国 ";
char s2[] = "中国 ";

char s3[10];
wchar_t s4[10];

int main()
{
for(int i=0;i <2;i++)
printf( "%04x ",s1[i]);
printf( "\n ");

for(int i=0;i <4;i++)
printf( "%02x ",(unsigned char)s2[i]);
printf( "\n ");

WideCharToMultiByte(CP_ACP,0,s1,2,s3,10,0,0);
MultiByteToWideChar(CP_ACP,0,s2,4,s4,10);

for(int i=0;i <4;i++)
printf( "%02x ",(unsigned char)s3[i]);
printf( "\n ");

for(int i=0;i <2;i++)
printf( "%04x ",s4[i]);
printf( "\n ");

}

[解决办法]
http://noshape.bokee.com/4749054.html

热点排行