GBK编码数据转码为UTF-8格式
来源:互联网 发布:js settimeout无效 编辑:程序博客网 时间:2024/05/21 06:19
#include <windows.h>
#include <wchar.h>
int CFileListModel::GBKToUTF8(unsigned char * lpGBKStr,unsigned char * lpUTF8Str,int nUTF8StrLen)
{
wchar_t * lpUnicodeStr = NULL;
int nRetLen = 0;
if(!lpGBKStr) //如果GBK字符串为NULL则出错退出
return 0;
nRetLen = ::MultiByteToWideChar(CP_ACP,0,(char *)lpGBKStr,-1,NULL,NULL); //获取转换到Unicode编码后所需要的字符空间长度
lpUnicodeStr = new WCHAR[nRetLen + 1]; //为Unicode字符串空间
nRetLen = ::MultiByteToWideChar(CP_ACP,0,(char *)lpGBKStr,-1,lpUnicodeStr,nRetLen); //转换到Unicode编码
if(!nRetLen) //转换失败则出错退出
return 0;
nRetLen = ::WideCharToMultiByte(CP_UTF8,0,lpUnicodeStr,-1,NULL,0,NULL,NULL); //获取转换到UTF8编码后所需要的字符空间长度
if(!lpUTF8Str) //输出缓冲区为空则返回转换后需要的空间大小
{
if(lpUnicodeStr)
delete []lpUnicodeStr;
return nRetLen;
}
if(nUTF8StrLen < nRetLen) //如果输出缓冲区长度不够则退出
{
if(lpUnicodeStr)
delete []lpUnicodeStr;
return 0;
}
nRetLen = ::WideCharToMultiByte(CP_UTF8,0,lpUnicodeStr,-1,(char *)lpUTF8Str,nUTF8StrLen,NULL,NULL); //转换到UTF8编码
if(lpUnicodeStr)
delete []lpUnicodeStr;
return nRetLen;
}
0 0
- GBK编码数据转码为UTF-8格式
- oracle编码格式从utf-8转换为GBK
- oracle编码格式从utf-8转换为GBK
- oracle编码格式从utf-8转换为GBK
- eclipse转android studio解决GBK编码转换为UTF-8格式的方法
- iconv转换编码格式 gbk utf-8
- GBK转UTF-8编码
- 将GBK转码为UTF-8
- struts spring jdbc 编码格式从utf-8转化为gbk
- 如何使用Java代码将GBK编码格式的工程转换为UTF-8编码格式的工程
- 内码转换:以 GBK 编码到 UTF-8 编码为例
- UTF-8项目发送GBK报文,JAVA实现UTF-8转码为GBK
- Ubuntu转换文件编码格式(gbk to utf-8 )
- UNICODE,GBK,UTF-8:编码格式的区别
- java程序将GBK字符转成UTF-8编码格式
- UNICODE,GBK,UTF-8:编码格式的区别
- 编码格式(关于utf-8,gb2312,gbk,big5等)
- delphi GBK 以UTF-8的格式URLENCODE编码
- QCom MSM平台显示屏Framebuffer设备注册过程
- FTP Reply Codes
- 一个TextView 设置两种字体颜色和大小
- CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+Toolbar实现app的折叠效果
- Java_FTPClient实现文件上传下载
- GBK编码数据转码为UTF-8格式
- MySql--索引和自定义函数
- Connection reset by peer: socket write error
- java中java.io.RandomAccessFile的应用场景及使用实例
- 线程基本概念
- js_回车
- 关于python中__name__和__main__的问题
- #ifndef/#define/#endif使用详解
- Hibernate框架学习之增删改查