Unicode下,一个汉字有几个编码么?! 比如“大”字。 int val = '大'; 那么val的值就是 46323 但通过MFC程序界面上输入的字符串,截取出来的“大”字,值却是 22823 这是怎么回事? 怎样才能统一? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 UTF-8(UTF8EncodeURI)和GB2312(GBKEncodeURI) 46323 是 GB 码22823 是 unicode 码 GB码可以调用 MultiByteToWideChar 转换成 unicode 码 楼上正解,这是不同编码的问题。利用Unicode编码支持更多国家的语言,有利于编写国际性的程序。 int val = '大' 46323int val = L'大' 22823 int val = '大'; // 这个是MBCS int val2 = L'大'; // 这个才是Unicode 那怎样才能将Unicode转化成国标码呢? 那如何把GB2312码(widechartomultibyte转化后是char*了),像vb的Asc函数一样,将它转成数字(字符代码)呢?! wchar_t a = L'大'; char b[2]; WideCharToMultiByte ( CP_ACP ,0 ,&a ,1 ,b ,2 ,NULL ,NULL ); DWORD dwUnicode = ((byte)b[0] << 8) + (byte)b[1] ;得到'大'的unicode码 打错了,乱了,重发吧! wchar_t a = L'大'; wchar_t c = '大'; char b[2]; WideCharToMultiByte ( CP_ACP ,0 ,&a ,1 ,b ,2 ,NULL ,NULL ); DWORD dwGB2312 = ((byte)b[0] << 8) + (byte)b[1] ;//得到GB码 MBCS指的是多字符集ascll是1个字符汉字是2个字符Unicode都是2字符Unicode含有编码的意识 它分配了编码gb,大五码都是编码wide char to multi byte是宽字符(2字符)转多字符集 c#程序员如何快速学好c++并掌握mfc 收发大文件碰到实际问题求助! 基于vc++无线通信上位机软件设计 小菜问个问题,大牛说说啊 关于RegisterHotKey无法注册的问题? 异步串口数据的接收问题 我的vs2005为什么不能调试一个小程序呢? 请教各位高人,关于创建dxf文件的问题 请高手进来 关于权限问题,大家帮小弟一把吧 请问怎么在DBGrid每条记录前加一个序号? 如何编程开启,关闭和判断硬件加速
22823 是 unicode 码
利用Unicode编码支持更多国家的语言,有利于编写国际性的程序。
int val = L'大' 22823
int val2 = L'大'; // 这个才是Unicode
那怎样才能将Unicode转化成国标码呢?
那如何把GB2312码(widechartomultibyte转化后是char*了),像vb的Asc函数一样,将它转成数字(字符代码)呢?!
wchar_t a = L'大';
char b[2];
WideCharToMultiByte ( CP_ACP ,0 ,&a ,1 ,b ,2 ,NULL ,NULL );
DWORD dwUnicode = ((byte)b[0] << 8) + (byte)b[1] ;得到'大'的unicode码
wchar_t a = L'大';
wchar_t c = '大';
char b[2];
WideCharToMultiByte ( CP_ACP ,0 ,&a ,1 ,b ,2 ,NULL ,NULL );
DWORD dwGB2312 = ((byte)b[0] << 8) + (byte)b[1] ;//得到GB码
ascll是1个字符
汉字是2个字符
Unicode都是2字符Unicode含有编码的意识 它分配了编码
gb,大五码都是编码wide char to multi byte
是宽字符(2字符)转多字符集