string ANSItoUTF8(const char* strAnsi)
{
//获取转换为宽字节后需要的缓冲区大小,创建宽字节缓冲区,936为简体中文GB2312代码页
int nLen = MultiByteToWideChar(CP_ACP, NULL, strAnsi, -, NULL, NULL);
WCHAR *wszBuffer = new WCHAR[nLen + ];
nLen = MultiByteToWideChar(CP_ACP, NULL, strAnsi, -, wszBuffer, nLen);
wszBuffer[nLen] = ;
//获取转为UTF8多字节后需要的缓冲区大小,创建多字节缓冲区
nLen = WideCharToMultiByte(CP_UTF8, NULL, wszBuffer, -, NULL, NULL, NULL, NULL);
CHAR *szBuffer = new CHAR[nLen + ];
nLen = WideCharToMultiByte(CP_UTF8, NULL, wszBuffer, -, szBuffer, nLen, NULL, NULL);
szBuffer[nLen] = ; string s1 = szBuffer;
//内存清理
delete[]wszBuffer;
delete[]szBuffer;
return s1;
} string UTF8toANSI(const char* strUTF8)
{
//获取转换为多字节后需要的缓冲区大小,创建多字节缓冲区
int nLen = MultiByteToWideChar(CP_UTF8, NULL, strUTF8, -, NULL, NULL);
WCHAR *wszBuffer = new WCHAR[nLen + ];
nLen = MultiByteToWideChar(CP_UTF8, NULL, strUTF8, -, wszBuffer, nLen);
wszBuffer[nLen] = ; nLen = WideCharToMultiByte(, NULL, wszBuffer, -, NULL, NULL, NULL, NULL);
CHAR *szBuffer = new CHAR[nLen + ];
nLen = WideCharToMultiByte(, NULL, wszBuffer, -, szBuffer, nLen, NULL, NULL);
szBuffer[nLen] = ; string s1 = szBuffer;
//清理内存
delete[]szBuffer;
delete[]wszBuffer;
return s1;
}

转载

C++ GB2312 和 utf8 在win32下 互转的更多相关文章

  1. 转载:从程序员的角度看ASCII, GB2312, UNICODE, UTF-8

    以下内容转自博客:http://blog.chinaunix.net/uid-22670933-id-1771613.html. 一.字符编码是怎么回事 0. 概念 字节是计算机的最基本存储单位,一个 ...

  2. MySQL字符集 GBK、GB2312、UTF8区别 解决 MYSQL中文乱码问题 收藏 MySQL中涉及的几个字符集

    MySQL中涉及的几个字符集 character-set-server/default-character-set:服务器字符集,默认情况下所采用的.character-set-database:数据 ...

  3. ANSI、GBK、GB2312、UTF-8、GB18030和 UNICODE

    http://www.chinaz.com/web/2012/1119/282540.shtml 编码一直是让新手头疼的问题,特别是 GBK.GB2312.UTF-8 这三个比较常见的网页编码的区别, ...

  4. mysq查询语句包含中文以及中文乱码,字符集 GBK、GB2312、UTF8的区别

    一.查看mysql 字符集设置情况 使用Navicat for Mysql查看工具,打开命令列界面,输入show variables like '%char%';如下图,查看当前mysql字符集设置情 ...

  5. 编码介绍(ANSI、GBK、GB2312、UTF-8、GB18030和 UNICODE)

    转载:http://blog.jobbole.com/30526/(前面内容)和http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf ...

  6. cocos2d-x:读取指定文件夹下的文件名称+解决中文乱码(win32下有效)

    援引:http://blog.csdn.net/zhanghefu/article/details/21284323 http://blog.csdn.net/cxf7394373/article/d ...

  7. 【miscellaneous】编码格式简介(ANSI、GBK、GB2312、UTF-8、GB18030和 UNICODE)

    转发:http://blog.jobbole.com/30526/ 来源:潜行者m 的博客 编码一直是让新手头疼的问题,特别是 GBK.GB2312.UTF-8 这三个比较常见的网页编码的区别,更是让 ...

  8. 编码的来源于格式简介ANSI、GBK、GB2312、UTF-8、GB18030和 UNICODE

    编码一直是让新手头疼的问题,特别是 GBK.GB2312.UTF-8 这三个比较常见的网页编码的区别,更是让许多新手晕头转向,怎么解释也解释不清楚.但是编码又是那么重要,特别在网页这一块.如果你打出来 ...

  9. C#获取文本文件的编码,自动区分GB2312和UTF8

    C# 获取文本文件的编码,自动区分GB2312和UTF8 以下是获取文件编码的一个类 using System; using System.IO; using System.Text; /// < ...

随机推荐

  1. mariadb数据库(4)集群

    [主从架构]确保主从的两个数据库一致. um配置 [mariadb] name=MariaDB baseurl=http://mirrors.ustc.edu.cn/mariadb/yum/10.3/ ...

  2. jQuery事件操作

    bind绑定事件 bind(type,data,fn) [参数描述] type (String) : 事件类型 data (Object) : (可选) 作为event.data属性值传递给事件对象的 ...

  3. 关于Pytorch中accuracy和loss的计算

    这几天关于accuracy和loss的计算有一些疑惑,原来是自己还没有弄清楚. 给出实例 def train(train_loader, model, criteon, optimizer, epoc ...

  4. 【Linux开发】编写属于你的第一个Linux内核模块

    曾经多少次想要在内核游荡?曾经多少次茫然不知方向?你不要再对着它迷惘,让我们指引你走向前方-- 内核编程常常看起来像是黑魔法,而在亚瑟 C 克拉克的眼中,它八成就是了.Linux内核和它的用户空间是大 ...

  5. docker-compose 部署elk+解决时间不对导致kibana找不到logstash定义的index + docker-compose安装

    1.拉代码 git clone https://github.com/deviantony/docker-elk.git 2.docker-compose配置文件 [root@host7 docker ...

  6. eclipse的debug

    打了断点,发起请求,eclipse有响应,但是断点行没有绿色也就是没有进入.提示source not found.此时应该将工程添加入路径,add->project->要调试的工程.res ...

  7. [转贴]Linux内核LTS长期支持版生命周期

    Linux内核LTS长期支持版生命周期 https://blog.51cto.com/dangzhiqiang/1894026 搞不懂长期支持版本的特点和区别. 党志强关注0人评论4371人阅读201 ...

  8. 【C++】A trick I learned:put boilerplate code into constructor of a struct

    I learned this trick from hitonanode's submission on AtCoder. The trick is like struct fast_ios { fa ...

  9. java-selenium-java鼠标键盘操作Actions类和Robot

    Actions类 一.鼠标右击.双击 Java代码 //定位百度首页右上角 新闻 WebElement Xw=driver.findElement(By.xpath("//*[@id='u1 ...

  10. P1828香甜的黄油

    这是一道关于最短路的绿题. 题目给出一些农场,每个农场有奶牛,农场与农场之间存在边,要使所有奶牛到达其中一个农场的总距离最短,输出他们到达这个农场的距离.首先我想到了最小生成树,但我发现其实并不是,因 ...