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小时内删除。
发表评论