c++后台向网页传数据中文乱码
unicode的char字符串直接转UTF-8的char
网上找到有unicode转utf-8的代码,但是参数用的是wchar_t的. 不能直接用稍微改造一下
WideCharToMultiByte()函数需要Windows.h头文件
//原本的代码
//unicode转UTF-8
char* UnicodeToUtf8(wchar_t* pwszUnicode)
{
int len;
len = WideCharToMultiByte(CP_UTF8, 0, pwszUnicode, -1, NULL, 0, NULL, NULL);
char* szUtf8 = (char*)malloc((int)len + 1);
memset(szUtf8, 0, len + 1);
WideCharToMultiByte(CP_UTF8, 0, pwszUnicode, -1, szUtf8, len, NULL, NULL);
return szUtf8;
}
直接换成参数char*的
//unicode转UTF-8
char* UnicodeToUtf8(char* str)
{
// 1. char转wchar_t
wchar_t* pwszUnicode;
int iSize;
iSize = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
pwszUnicode = (wchar_t*)malloc(iSize * sizeof(wchar_t));
MultiByteToWideChar(CP_ACP, 0, str, -1, pwszUnicode, iSize);