请教UTF-8编码转化为汉字的问题
比如,现在有utf编码“=E8=B4=BE;=E5=A4=A9=E6=96=B0”,代表汉字是“贾天新”,如和转化,最好能附上个函数。
[解决办法]
转成unicode了
char p[] = { 0xE8,0xB4,0xBE,0xE5,0xA4,0xA9,0xE6,0x96,0xB0,0};
wchar_t m[20];
memset(m,0,sizeof(wchar_t)*20);
MultiByteToWideChar(CP_UTF8,0,p,9,m,20);
wcout.imbue(locale( "chs "));
wcout < <m < <endl;
[解决办法]
在unicode和gbk之间转来转去:
#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
char p[] = { 0xE8,0xB4,0xBE,0xE5,0xA4,0xA9,0xE6,0x96,0xB0,0};
wchar_t m[20];
memset(m,0,sizeof(wchar_t)*20);
MultiByteToWideChar(CP_UTF8,0,p,9,m,20);
wcout.imbue(locale( "chs "));
wcout < <m < <endl;
memset(p,0,sizeof(char)*10);
WideCharToMultiByte(10008,0,m,3,p,9,NULL,NULL);
cout < <p < <endl;
return 0;
}