Windows 下关于转码的函数

Posted 树梢流年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows 下关于转码的函数相关的知识,希望对你有一定的参考价值。

 1 std::string& MsgFieldList::GBToUTF8(std::string& des,const char* str)
 2 {
 3      WCHAR *strSrc;
 4      TCHAR *szRes;
 5 
 6      //获得临时变量的大小
 7      int i = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
 8      strSrc = new WCHAR[i+1];
 9      MultiByteToWideChar(CP_ACP, 0, str, -1, strSrc, i);
10 
11      //获得临时变量的大小
12      i = WideCharToMultiByte(CP_UTF8, 0, strSrc, -1, NULL, 0, NULL, NULL);
13      szRes = new TCHAR[i+1];
14      int j=WideCharToMultiByte(CP_UTF8, 0, strSrc, -1, szRes, i, NULL, NULL);
15 
16      des = szRes;
17      delete []strSrc;
18      delete []szRes;
19 
20      return des;
21 }

反转代码:

 1 std::string& MsgFieldList::UTF8ToGB(std::string& des,const char* str)
 2 {
 3      WCHAR *strSrc;
 4      TCHAR *szRes;
 5 
 6      //获得临时变量的大小
 7      int i = MultiByteToWideChar(CP_UTF8, 0, str, -1, NULL, 0);
 8      strSrc = new WCHAR[i+1];
 9      MultiByteToWideChar(CP_UTF8, 0, str, -1, strSrc, i);
10 
11      //获得临时变量的大小
12      i = WideCharToMultiByte(CP_ACP, 0, strSrc, -1, NULL, 0, NULL, NULL);
13      szRes = new TCHAR[i+1];
14      WideCharToMultiByte(CP_ACP, 0, strSrc, -1, szRes, i, NULL, NULL);
15 
16      des = szRes;
17      delete []strSrc;
18      delete []szRes;
19 
20      return des;
21 }

 

以上是关于Windows 下关于转码的函数的主要内容,如果未能解决你的问题,请参考以下文章

FFMPEG - 如何识别硬件转码的瓶颈?

FFmpeg入门详解之71:获取ffmpeg转码的实时进度

firefox下载excel表格时候下载下来的excel名称是乱码,有知道如何转码的吗? 最好有具体的实现代码

PHP的json_encode中文被转码的问题

php实现转码的方式(支持数组类型转码)

文科生的“逆天改命”,那些转码的人怎么样了?