函数拿起来就可以用

参数说明:sChartSet : FromANSI(ANSI->UNICODE) , ToANSI (UNICODE->ANSI) , FromUTF8 (UTF8->UNICODE) , ToUTF8 (UNICODE->UTF8)

CString CSqlConTestDlg::UnicodeCovert(CString sSourceStr , CString sCharSet)

{

bool bToUnicode = true;

if(!strnicmp(sCharSet,"To",2))

{

sCharSet = sCharSet.Mid(2);

bToUnicode = FALSE;

}

else if(!strnicmp(sCharSet,"From",4))

{

sCharSet = sCharSet.Mid(4);

}

else

{

return "";

}

UINT nCodePage = CP_ACP;

if(stricmp(sCharSet,"ANSI") == 0 || stricmp(sCharSet,"ACP") == 0)

nCodePage = CP_ACP; //ANSI translation

else if(stricmp(sCharSet,"UTF8") == 0)

nCodePage = CP_UTF8; //UTF8 translation

else

return "";

CString sCovert;

if(bToUnicode) //->Unicode

{

DWORD nWideBuf = MultiByteToWideChar(nCodePage , 0 , (LPCTSTR)sSourceStr , sSourceStr.GetLength(),NULL,0); //探测转成Unicode的长度

sCovert.GetBufferSetLength(nWideBuf*2);

MultiByteToWideChar(nCodePage,0,(LPCTSTR)sSourceStr,sSourceStr.GetLength(),(LPWSTR)LPCTSTR(sCovert),nWideBuf);

}

else //Unicode - >

{

DWORD nWideCount = (sSourceStr.GetLength() + 1) * 2;

if(nWideCount == 0)

sCovert.Empty();

else

{

int nMultilen = WideCharToMultiByte(nCodePage, 0 , (LPWSTR)LPCTSTR(sSourceStr),nWideCount,sCovert.GetBufferSetLength(nWideCount),0);

sCovert.GetBufferSetLength(nMultilen);

}

}

return sCovert;

}

转载于:https://www.cnblogs.com/zzhua/p/5808532.html

MFC格式转换 UTF8 ANSI UNICODE相关推荐

  1. iconv linux window to mac,iconv - Mac OS 文本格式转换工具

    1. iconv 介绍 iconv命令可以将一种已知的字符集文件转换成另一种已知的字符集文件. 它的作用是在多种国际编码格式之间进行文本内码的转换. iconv基于GPL公开源代码,是GNU项目的一部 ...

  2. 字符编码:ANSI、ASCII、Unicode、UTF-8、UTF-16、UTF-32概念和格式转换

    1.ASCII ASCII码是字符集,使用指定的7 位或8 位二进制数组合来表示128或256 种可能的字符.分为标准ASCII .扩展ASCII . 标准ASCII 码也叫基础ASCII码,使用7 ...

  3. 字符串处理 - ANSI - Unicode - UTF8 转换

    字符串处理 - ANSI - Unicode - UTF8 转换 [C语言]字符串处理 - ANSI - Unicode - UTF8 转换 2008-11-4: 使用MultiByteToWideC ...

  4. Windows环境下Unicode编程总结和将ANSI转换到Unicode 将Unicode转换到ANSI

    Windows环境下Unicode编程总结 UNICODE环境设置 在安装Visual Studio时,在选择VC++时需要加入unicode选项,保证相关的库文件可以拷贝到system32下. UN ...

  5. 字符编码简介 ANSI Unicode Unicode big endian UTF-8

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

  6. 介绍一下unicode,ansi,utf-8,unicode big endian编码

    介绍一下unicode,ansi,utf-8,unicode big endian编码 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们看到8个开关状 ...

  7. 字符串编码(ASCII, GBK, ANSI, Unicode(‘\u‘), UTF-8编码)

    字符串编码的发展 1.首先,计算机只能处理数字,文本转换为数字才能处理.计算机中8个bit作为一个字节,所以一个字节能表示最大的数字就是255 因为计算机是美国人发明的,所以一个字节可以表示所有字符了 ...

  8. Utf8和Unicode转换问题 C语言 千字文问题

    Utf8和Unicode转换问题 千字文 请编写一个程序,从输入中读取一篇中文文章,并统计出该文章中 ASCII 字符以外的重复出现的每一个字重复出现的次数. 文章使用 UTF-8 编码,可能会出现任 ...

  9. utf8与unicode转换

    转自http://blog.csdn.net/nrc_douningbo/article/details/5880602 前端时间要自己实现utf8和unicode格式转换,打算封装一个类.也想过偷懒 ...

  10. UTF-8,Unicode,GB2312编码转换(C语言)

    UTF-8,Unicode,GB2312编码转换(C语言) 最近在做MQTT客户端的时候,遇到需要将输入的GB2312中文转换为UTF8的问题,这边做一个整理. UTF-8转GB2312 代码: /* ...

最新文章

  1. posix多线程有感--线程高级编程(线程和fork,exec)
  2. centos6.8安装php7.3,CentOS7.6源码编译安装PHP 7.3.8
  3. 06.search_shard_api操作
  4. centos yum安装_centos7上yum安装碰到的坑
  5. python如何获取url中的内容_python怎么提取url中的参数
  6. LInux:shell 彩色进度条实现(有图有代码有真相!!!)
  7. Appium+PythonUI自动化之webdriver 的三种等待方式(强制等待、隐式等待、显示等待)
  8. 互联网日报 | 2月4日 星期四 | 阿里云首次实现盈亏平衡;百度“2021好运中国年”春节活动上线;谷歌放弃自研游戏计划...
  9. PyTorch 1.0 中文官方教程:训练分类器
  10. 苹果支持安卓手机以旧换新,华为P30顶配最高才抵扣200元?
  11. Windows下Github使用方法
  12. 转 点击关闭时最小化到任务栏
  13. 如果看了此文,你还不懂傅里叶变换,那就过来掐死我吧(完整版)
  14. Linux服务之批量部署篇
  15. 华为面试题目:一头牛重800kg,一座桥承重700kg,牛如何过河?天秀回答秒通过...
  16. 最常用的看板工具,敏捷开发工具
  17. 如何使用机器学习在一个非常小的数据集上做出预测
  18. 计算机考研对英语四六级有要求吗,2022考研指南|考研对英语四六级有要求吗?...
  19. matlab中单刀双掷开关,proteus 怎样找单刀双掷开关
  20. win10控制面板快捷键_你没玩过的全新版本 Win10这些操作你知多少

热门文章

  1. LINUX下载编译FriBidi
  2. 天津西站,大屏幕程序出错啦
  3. apt不询问直接安装
  4. 人工智能不是替代人,而是辅助人
  5. 管理感悟:遇到问题,使用矩阵测试法
  6. 管理感悟:套路就是文档化
  7. java如何输出完整的图_java实现输入输出图片
  8. java9类加载器_深入理解java虚拟机(九)类加载器以及双亲委派模型
  9. java实现续打功能_银行存折套打续打功能 -- 报表如何记录上次打印的位置
  10. java 服务器时间 jvm_手动设置jvm时间改为第8时区的时间JVM虚拟机时区设置问题,java日期工具类各种解决不好使,很麻烦...