UTF-8 转 Unicode, Unicode 转 GBK, UTF-8 转 GBK
#include <windows.h>
#include <stdio.h>
void main() {
//三个不同版本的老徐
unsigned char utf8[] = "/xe8/x80/x81/xe5/xbe/x90 ";
unsigned char unicode[] = "/x01/x80/x90/x5f ";
unsigned char ansi[] = "/xc0/xcf/xd0/xec ";
int len;
//UTF-8转UNICODE
len = MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)utf8, -1, NULL,0);
WCHAR * wszUtf8 = new WCHAR[len+1];
memset(wszUtf8, 0, len * 2 + 2);
MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)utf8, -1, wszUtf8, len);
MessageBoxW(NULL, (const wchar_t*)wszUtf8, NULL, MB_OK);
//UNICODE转ANSI,实际上经过两次转换 UTF-8 已经变成了 GBK 编码
len = WideCharToMultiByte(CP_ACP, 0, wszUtf8, -1, NULL, 0, NULL, NULL);
char *szGBK=new char[len + 1];
memset(szGBK, 0, len + 1);
WideCharToMultiByte (CP_ACP, 0, wszUtf8, -1, szGBK, len, NULL,NULL);
MessageBoxA(NULL, (const char*)szGBK, NULL, MB_OK);
delete[] szGBK;
delete[] wszUtf8;
}
UTF-8 转 Unicode, Unicode 转 GBK, UTF-8 转 GBK
最新推荐文章于 2024-05-21 14:15:44 发布
本文介绍了一个简单的字符编码转换示例,演示如何使用Windows API将UTF-8编码转换为Unicode,再进一步转换为GBK编码的过程。通过具体的代码实现,读者可以了解到不同编码之间的转换方法。

9825

被折叠的 条评论
为什么被折叠?



