C++/MFC   UTF8 转 Unicode

char* U8ToUnicode(char* szU8)
{//UTF8 to Unicode//预转换,得到所需空间的大小int wcsLen = ::MultiByteToWideChar(CP_UTF8, NULL, szU8, strlen(szU8), NULL, 0);//分配空间要给'\0'留个空间,MultiByteToWideChar不会给'\0'空间wchar_t* wszString = new wchar_t[wcsLen + 1];//转换::MultiByteToWideChar(CP_UTF8, NULL, szU8, strlen(szU8), wszString, wcsLen);//最后加上'\0'wszString[wcsLen] = '\0';char *m_char;int len = WideCharToMultiByte(CP_ACP, 0, wszString, wcslen(wszString), NULL, 0, NULL, NULL);m_char = new char[len + 1];WideCharToMultiByte(CP_ACP, 0, wszString, wcslen(wszString), m_char, len, NULL, NULL);m_char[len] = '\0';return m_char;
}

Unicode 转  UTF8

char* UnicodeToU8(wchar_t* wszString)
{// unicode to UTF8//预转换,得到所需空间的大小,这次用的函数和上面名字相反int u8Len = ::WideCharToMultiByte(CP_UTF8, NULL, wszString, wcslen(wszString), NULL, 0, NULL, NULL);//同上,分配空间要给'\0'留个空间//UTF8虽然是Unicode的压缩形式,但也是多字节字符串,所以可以以char的形式保存char* szU8 = new char[u8Len + 1];//转换//unicode版对应的strlen是wcslen::WideCharToMultiByte(CP_UTF8, NULL, wszString, wcslen(wszString), szU8, u8Len, NULL, NULL);//最后加上'\0'szU8[u8Len] = '\0';return szU8;
}

C++ UTF8 互转 Unicode相关推荐

  1. c++ ANSI、UNICODE、UTF8互转

    c++ ANSI.UNICODE.UTF8互转     static std::wstring MBytesToWString(const char* lpcszString);     static ...

  2. 汉字编码(【Unicode】 【UTF-8】 【Unicode与UTF-8之间的转换】 【汉字 Unicode 编码范围】【中文标点Unicode码】【GBK编码】【批量获取汉字UNICODE码】)

    参考博客: Unicode与UTF-8互转(C语言实现):http://blog.csdn.net/tge7618291/article/details/7599902 汉字 Unicode 编码范围 ...

  3. 聊聊gbk与utf8互转的乱码问题

    作为一个程序员,乱码问题,应该我们都有遇到,但对于这个问题,很难用一句话概括乱码是怎么一回事,具体的问题还需要具体分析. 我们知道在计算机内存中,存储的是二进制数据,在网络传输中,也是二进制数据,但最 ...

  4. Qt QString 中文 char* UTF-8 QByteArray QTextCodec unicode gb2312 GBK 乱码与转码问题

    代码如下:如果不不设全局的字符集是utf-8,那么网上一般的方法是可以转的.如下程序中 #define DD 1的情况下:但是如果设置了全局的utf-8,再用以前的方法: QByteArray ba= ...

  5. char qt 转unicode_Qt QString 中文 char* UTF-8 QByteArray QTextCodec unicode gb2312 GBK 乱码与转码问题...

    2012-03-22 14:00 175人阅读 评论(0) 代码如下:如果不不设全局的字符集是utf-8,那么网上一般的方法是可以转的.如下程序中 #define DD 1的情况下:但是如果设置了全局 ...

  6. MFC开发IM-第二十三篇、C++中 UTF-8转成Unicode

    实现代码 //UTF-8转成Unicode int length; wchar_t* wCharUnicode = L"中国你好"; length = wcslen(wCharUn ...

  7. Unicode与UTF-8互转(C语言实现)

    1. 基础 1.1 ASCII码 我们知道, 在计算机内部, 所有的信息最终都表示为一个二进制的字符串. 每一个二进制 位(bit)有0和1两种状态, 因此八个二进制位就可以组合出 256种状态, 这 ...

  8. linux wstring乱码,对C++中ANSI,GBK,utf8,wstring,string,unicode的一些重要踩坑总结

    啥是utf8,unicode,gbk,这些就不说了,说的人很多.要说的就是应用中要踩的一些坑和干货. 如果你想写一个需要处理各种格式文本编码的程序,那么一般来讲,存储为UTF8格式,因为UTF8最省空 ...

  9. 再谈java乱码:GBK和UTF-8互转尾部乱码问题分析

    一直以为java中任意unicode字符串可以使用任意字符集转为byte[]再转回来只要不抛出异常就不会丢失数据事实证明这是错的. 经过这个实例也明白了为什么 getBytes()需要捕获异常虽然有时 ...

最新文章

  1. 第十五周项目二-洗牌(范形程序设计)
  2. CKEditor 4编辑器已与Vue.js集成
  3. ubuntu 14 java web服务器搭建
  4. 95-34-035-Context-HeadContext和TailContext
  5. Atitit 学习方法 -------体系化学习方法 Excel 科目,分类,专业 三级分类。。 知识点。。 课程就是每一个知识点的详细化。。 比如经济学 类别 专业 xx概论知识点 3、金
  6. 等保2.0 等保二级基本要求与测评控制点
  7. 唯品会等被纳入MSCI指数,中概股迎来春天
  8. 什么app可以查车停车记录_记录停车位置的app
  9. 远程计算机或许不支持所需的,WIN10远程计算机不支持所需的FIPS安全级别解决
  10. Go语言中间件框架 Negroni 的静态文件处理源码分析
  11. 秒杀分部积分,提高计算幸福感——表格积分法
  12. 【JAVA SE】java中的String类
  13. 互联网的女性主义特征(转载)
  14. Elasticsearch Compound queries 学习总结
  15. 初探“Android Instant Apps”
  16. ALSA dmaengine ops
  17. java流水线工程设计_进阶项目(7)流水线设计讲解
  18. php收银系统如何连接pos机,如何实现POS机与进销存系统相连接_店铺ERP_企业服务汇...
  19. 收费邮箱的主要特点,收费邮箱价格及容量对比
  20. ​AGV机器人:基于视觉避障的理论基础

热门文章

  1. android bks证书生成方式
  2. rar压缩包已加密如何解除,rar压缩包权限限制怎么办?
  3. html5怎么做相册影集,手机怎么做相册影集
  4. springboot接口接参注解详解 controller @Valid
  5. 理工附中2021年高考成绩查询,2021年江苏理工学院录取结果查询,附查询网址入口...
  6. SpringSecurity自定义多Provider时提示No AuthenticationProvider found for问题的解决方案与原理(二)
  7. 千兆路由器怎么设置网速最快_tp无线路由器怎么设置网速最快
  8. 计算机开机出现代码卡顿,电脑开机后很卡怎么办
  9. 分水岭算法(学习笔记)
  10. pyqt5中sender方法介绍_PyQt5学习记录(二):Event sender