ANSI编码⽅式转化为UTF-8⽅式
说明:
记事本txt有四种编码⽅式,分别为:UTF-8、ANSI、Unicode和Unicode big endian,当进⾏写操作,创建的txt编码格式,与写⼊汉字的编码⽅式相同;如果写⼊的汉字是不同的编码⽅式,此时创建的txt中,会出现乱码,所以需要把汉字转化为同⼀编码⽅式。
本⽂主要介绍:把汉字编码⽅式,由ANSI⽅式转化为UTF-8⽅式:
⼀、ANSI转化为UTF-8程序:
[cpp]
1. CString ToUTF8(const wchar_t* buffer, int len)  //返回类型为CString
2. {
3.    int size = ::WideCharToMultiByte(CP_UTF8, 0, buffer, len, NULL, 0, NULL,
4.            NULL);
5.    if (size == 0)
6.        return "";cstring转为int
7.
8.    std::string newbuffer;
9.    size(size);
10.    ::WideCharToMultiByte(CP_UTF8, 0, buffer, len,
11.            const_cast<char*>(newbuffer.c_str()), size, NULL, NULL);
12.
13.    //如需返回string类型,直接 return newbuffer
14.
15.    TCHAR outstr[64]; //string 转化为CString返回
16.    CString strTemp;
17.    memset(outstr, '\0', sizeof(outstr));
18.    memcpy(outstr,newbuffer.c_str(),newbuffer.size());
19.    strTemp.Format("%s",outstr);
20.    return strTemp;
21. }
⼆、函数调⽤形式
[cpp]
1. wstring text =  L"汉字";
2. CString strTemp = ToUTF8(text.c_str(),text.size());

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。