1、转UTF8编码

string StdStringToUTF8(const string& str)
{int nwLen = ::MultiByteToWideChar(CP_ACP, 0, str.c_str(), -1, NULL, 0);wchar_t * pwBuf = new wchar_t[nwLen + 1];//一定要加1,不然会出现尾巴 ZeroMemory(pwBuf, nwLen * 2 + 2);::MultiByteToWideChar(CP_ACP, 0, str.c_str(), str.length(), pwBuf, nwLen);int nLen = ::WideCharToMultiByte(CP_UTF8, 0, pwBuf, -1, NULL, NULL, NULL, NULL);char * pBuf = new char[nLen + 1];ZeroMemory(pBuf, nLen + 1);::WideCharToMultiByte(CP_UTF8, 0, pwBuf, nwLen, pBuf, nLen, NULL, NULL);std::string retStr(pBuf);delete[]pwBuf;delete[]pBuf;pwBuf = NULL;pBuf = NULL;return retStr;
}

2、转GBK编码

string StdStringToGBK(const string& str)
{int nwLen = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, NULL, 0);wchar_t * pwBuf = new wchar_t[nwLen + 1];//一定要加1,不然会出现尾巴 memset(pwBuf, 0, nwLen * 2 + 2);MultiByteToWideChar(CP_UTF8, 0, str.c_str(), str.length(), pwBuf, nwLen);int nLen = WideCharToMultiByte(CP_ACP, 0, pwBuf, -1, NULL, NULL, NULL, NULL);char * pBuf = new char[nLen + 1];memset(pBuf, 0, nLen + 1);WideCharToMultiByte(CP_ACP, 0, pwBuf, nwLen, pBuf, nLen, NULL, NULL);std::string retStr = pBuf;delete[]pBuf;delete[]pwBuf;pBuf = NULL;pwBuf = NULL;return retStr;
}

Qt中UTF8与GBK相互转换方法相对比较简单:


QString GBK2UTF8(const QString &str)
{QTextCodec *utf8 = QTextCodec::codecForName("UTF-8");return utf8->toUnicode(str.toUtf8());
}QString UTF82GBK(const QString &str)
{QTextCodec *gbk = QTextCodec::codecForName("GB18030");return gbk->toUnicode(str.toLocal8Bit());
}std::string GBK2UTF8(std::string &str)
{QString temp = QString::fromLocal8Bit(str.c_str());std::string ret = temp.toUtf8().data();return ret;
}std::string UTF82GBK(std::string &str)
{QString temp = QString::fromUtf8(str.c_str());std::string ret = temp.toLocal8Bit().data();return ret;
}

String字符串编码格式转换(UTF8/GBK)相关推荐

  1. golang string 字符串 大小写转换

    package mainimport ("fmt""strings" )/* 1.func Title(s string) string 将字符串s每个单词首字 ...

  2. Java字符串编码转换UTF-8

    import java.io.UnsupportedEncodingException; /** * * * 描述:<p> 功能描述,该部分必须以中文句号结尾.</p> * 创 ...

  3. c语言字符串如何转换成gbk,C语言实现GBK/GB2312/五大码之间的转换(转)

    //--------------------------------------------------------------------------- // 大五码Big5转GBK码: void ...

  4. Java实现ASCII与String字符串互相转换

    将ASCII转成String字符串 @Test public void ASCIIToConvert(){String value = "20320 22909 21568 65281 26 ...

  5. 中文字符串的编码转换 UTF-8//GBK

    golang在处理中文时默认的是utf-8编码,当某些情况下遇到GBK编码或需要GBK编码时,就会出现显示乱码的问题. 1. simplifiedchinese golang官方有针对中文编码转换的包 ...

  6. python 字符串unicode编码_python的string与Unicode转换,gbk字符串编码

    问题一 字串前面少了u. 当遇见以下情况. 返回字符串为'\u82f9\u679c'的unicode时候. str1 = '\u82f9\u679c' # 这里没有u,当传入参数不是unicode的时 ...

  7. python3 gb2312转utf8_字符编码和python使用encode,decode转换utf-8, gbk, gb2312

    python3 爬取网页报错:'gb2312' codec can't decode byte 0xb5 in position 154969: illegal multibyte sequence ...

  8. android 表情字符串,Android 显示输入法中的emoji表情以及String字符串转码

    实现用原生键盘输入表情并显示,有两种办法: 发送时将String字符串转换为Unicode编码字符串,显示接收的列表时用Unicode编码字符串转化为String字符串 发送时将String字符串转换 ...

  9. Android 显示输入法中的emoji表情以及String字符串转码

    Android 显示输入法中的emoji表情以及String字符串转码 实现用原生键盘输入表情并显示,有两种办法: 发送时将String字符串转换为Unicode编码字符串,显示接收的列表时用Unic ...

最新文章

  1. oracle如何上传图片,js实现上传图片之上传前预览图片
  2. (转)Hibernate事务管理
  3. 【问题解决方案】CentOS7替换yum的问题:使用yum makecache出现File contains no section headers
  4. 天梯—判断素数(C语言)
  5. 如何下载vSphere Big Data Extensions 1.0免费试用版
  6. 苹果发布高端头戴式耳机AirPods Max12月15日发售
  7. Kepserver如何连接InTouch
  8. 像素图片转矢量图片——从图像中提取曲线信息
  9. 中国程序员容易发错音的单词「GitHub 热点速览 v.22.23」
  10. java实现三进制转十进制
  11. java wgs84 百度坐标_javascript 实现wgs84 坐标转百度坐标
  12. [十大排序]有的人图画着画着就疯了(1.5w字详细分析+动图+源码)
  13. 漂亮实用的jQuery倒计时插件特效代码
  14. 有道云笔记Markdown图片插入居中方法
  15. ckfinder 2.3 破解
  16. 美国通胀再创新高,一夜梦回八零年代
  17. 加解密杂烩程序开发(三)
  18. Windows系统kratos生成proto代码是报exec: “protoc“: executable file not found in %PATH%错误解决办法
  19. 论文阅读:DeepDDG:使用神经网络预测蛋白质点突变的稳定性变化
  20. 轻量级浏览器NetSurf学习(九)-- 如何基于NetSurf打造自己的浏览器

热门文章

  1. 动态贝叶斯网络中TBN与DBN的区别
  2. 贝叶斯网络的c语言编程,用R语言编程贝叶斯网络
  3. PMP试题(435道)
  4. 戴尔7400笔记本WIN10蓝牙突然不见了,高通QCA61X4A无线网卡
  5. 单片机开发—呼吸灯的三种实现方法
  6. 财务管理系统是计算机,《计算机财务管理》PPT课件.ppt
  7. 解决yum软件无法安装的问题
  8. Android接电话流程、Phone来电过程、phone上层来电话解析 接通电话
  9. 猜生日 今年的植树节(2012年3月12日),小明和他的叔叔还有小伙伴们一起去植树。
  10. MAC修改jar包并打包