Unicode char* unsigned short* 的疑问
对这类问题以及VC6对它们的处理方法有一些疑问
LPWSTR = unsigned short *
LPSTR = char *
但是char*也是可以正确处理中文的
int main(int argc, char* argv[])
{
LPWSTR a = L"测试"; //内存中的值 4B 6D D5 8B
LPSTR b = "测试"; //内存中的值 B2 E2 CA D4
MessageBoxW(NULL,a,L"ok",0);
MessageBoxA(NULL,b,"ok",0);
printf("Hello World!\n");
return 0;
}
上面的两个“测试”,内存中的值是不一样的,但用对应的MessageBox是可以正常显示出来的
既然char*可以处理中文,unsigned short * 也可以,那我是用char* 还是 unsigned short *
这两个到底有什么不同啊?
请大家帮忙,谢谢!
问题点数:20、回复次数:4Top
1 楼beyondtkl(大龙驹<*好久没来了,兄弟们好吧。*>)回复于 2005-06-16 09:13:46 得分 5
unsigned short *
用这个最好。。Top
2 楼fireseed(【VC无敌,英明神武,千秋万代,一统江湖!】—奶油狗)回复于 2005-06-16 09:15:17 得分 15
一个是宽字符,一个是多字节,两种编码是不一样的。
如果你的程序要想在全球发布,一定要使用宽字符Unicode,不然在别的操作系统上,多字节字符,比如中文,会显示成乱码。
Unicode把所有的字,各国语言的文字全部统一编码了,而多字节则是有码表区分的,我国是GB_2312,台湾是Big5……明白了吗?Top
3 楼YvesGao(叶辉)回复于 2005-06-16 09:35:49 得分 0
哦这样啊,有点明白了
Top
4 楼fireseed(【VC无敌,英明神武,千秋万代,一统江湖!】—奶油狗)回复于 2005-06-16 09:56:16 得分 0
明拍了就快结贴给分吧Top
相关问题
- 老问题 新疑问,CString(UNICODE) convert char[]
- 求助!Unicode的疑问
- typedef unsigned char UCHAR;
- (char *)或char temp[] 转unsigned short
- unsigned char,signed char的问题
- How to convert a int to unsigned char* ?
- Cannot convert 'AnsiString' to 'unsigned char'
- 关于:typedef unsigned char
- unsigned char* 转换 String
- 关于const char* const的疑问...




