MFC格式转换 UTF8 ANSI UNICODE
函数拿起来就可以用
参数说明: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相关推荐
- iconv linux window to mac,iconv - Mac OS 文本格式转换工具
1. iconv 介绍 iconv命令可以将一种已知的字符集文件转换成另一种已知的字符集文件. 它的作用是在多种国际编码格式之间进行文本内码的转换. iconv基于GPL公开源代码,是GNU项目的一部 ...
- 字符编码:ANSI、ASCII、Unicode、UTF-8、UTF-16、UTF-32概念和格式转换
1.ASCII ASCII码是字符集,使用指定的7 位或8 位二进制数组合来表示128或256 种可能的字符.分为标准ASCII .扩展ASCII . 标准ASCII 码也叫基础ASCII码,使用7 ...
- 字符串处理 - ANSI - Unicode - UTF8 转换
字符串处理 - ANSI - Unicode - UTF8 转换 [C语言]字符串处理 - ANSI - Unicode - UTF8 转换 2008-11-4: 使用MultiByteToWideC ...
- Windows环境下Unicode编程总结和将ANSI转换到Unicode 将Unicode转换到ANSI
Windows环境下Unicode编程总结 UNICODE环境设置 在安装Visual Studio时,在选择VC++时需要加入unicode选项,保证相关的库文件可以拷贝到system32下. UN ...
- 字符编码简介 ANSI Unicode Unicode big endian UTF-8
1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和 1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte) ...
- 介绍一下unicode,ansi,utf-8,unicode big endian编码
介绍一下unicode,ansi,utf-8,unicode big endian编码 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们看到8个开关状 ...
- 字符串编码(ASCII, GBK, ANSI, Unicode(‘\u‘), UTF-8编码)
字符串编码的发展 1.首先,计算机只能处理数字,文本转换为数字才能处理.计算机中8个bit作为一个字节,所以一个字节能表示最大的数字就是255 因为计算机是美国人发明的,所以一个字节可以表示所有字符了 ...
- Utf8和Unicode转换问题 C语言 千字文问题
Utf8和Unicode转换问题 千字文 请编写一个程序,从输入中读取一篇中文文章,并统计出该文章中 ASCII 字符以外的重复出现的每一个字重复出现的次数. 文章使用 UTF-8 编码,可能会出现任 ...
- utf8与unicode转换
转自http://blog.csdn.net/nrc_douningbo/article/details/5880602 前端时间要自己实现utf8和unicode格式转换,打算封装一个类.也想过偷懒 ...
- UTF-8,Unicode,GB2312编码转换(C语言)
UTF-8,Unicode,GB2312编码转换(C语言) 最近在做MQTT客户端的时候,遇到需要将输入的GB2312中文转换为UTF8的问题,这边做一个整理. UTF-8转GB2312 代码: /* ...
最新文章
- posix多线程有感--线程高级编程(线程和fork,exec)
- centos6.8安装php7.3,CentOS7.6源码编译安装PHP 7.3.8
- 06.search_shard_api操作
- centos yum安装_centos7上yum安装碰到的坑
- python如何获取url中的内容_python怎么提取url中的参数
- LInux:shell 彩色进度条实现(有图有代码有真相!!!)
- Appium+PythonUI自动化之webdriver 的三种等待方式(强制等待、隐式等待、显示等待)
- 互联网日报 | 2月4日 星期四 | 阿里云首次实现盈亏平衡;百度“2021好运中国年”春节活动上线;谷歌放弃自研游戏计划...
- PyTorch 1.0 中文官方教程:训练分类器
- 苹果支持安卓手机以旧换新,华为P30顶配最高才抵扣200元?
- Windows下Github使用方法
- 转 点击关闭时最小化到任务栏
- 如果看了此文,你还不懂傅里叶变换,那就过来掐死我吧(完整版)
- Linux服务之批量部署篇
- 华为面试题目:一头牛重800kg,一座桥承重700kg,牛如何过河?天秀回答秒通过...
- 最常用的看板工具,敏捷开发工具
- 如何使用机器学习在一个非常小的数据集上做出预测
- 计算机考研对英语四六级有要求吗,2022考研指南|考研对英语四六级有要求吗?...
- matlab中单刀双掷开关,proteus 怎样找单刀双掷开关
- win10控制面板快捷键_你没玩过的全新版本 Win10这些操作你知多少
热门文章
- LINUX下载编译FriBidi
- 天津西站,大屏幕程序出错啦
- apt不询问直接安装
- 人工智能不是替代人,而是辅助人
- 管理感悟:遇到问题,使用矩阵测试法
- 管理感悟:套路就是文档化
- java如何输出完整的图_java实现输入输出图片
- java9类加载器_深入理解java虚拟机(九)类加载器以及双亲委派模型
- java实现续打功能_银行存折套打续打功能 -- 报表如何记录上次打印的位置
- java 服务器时间 jvm_手动设置jvm时间改为第8时区的时间JVM虚拟机时区设置问题,java日期工具类各种解决不好使,很麻烦...