UNCODE 与 ANSI 编码互相转换
开发测试环境
WIN7 SP1 + VC2010
运行测试效果
调用测试
void CTDlg::OnBnClickedButtonUncode( ){
CString strData = “双字节汉字 - ANSI” ;
char buffer[100] = “双字节汉字 - ANSI\0”;
Ansi_To_Uncdode( strData, buffer ) ;
m_strEdit_MSG += _T("\r\n") ;
m_strEdit_MSG += strData ;Ansi_To_Uncdode( strData ) ;
m_strEdit_MSG += _T("\r\n") ;
m_strEdit_MSG += strData ;UpdateData( false ) ;
}
void CTDlg::OnBnClickedButtonAnsi( ){
CString strTemp = _T(“单字节汉字 - ANSI”) ;
char buffer[100] = "";Uncdode_To_Ansi( strTemp ) ;
m_strEdit_MSG += _T("\r\n") ;
m_strEdit_MSG += strTemp ;UpdateData( false ) ;
}
*// CommFunction.h
#pragma once
bool Uncdode_To_Ansi(CString& strData ) ;
bool Ansi_To_Uncdode( CString& strData ) ;
bool Ansi_To_Uncdode( CString& lpwTarget, LPSTR lpmStr ) ;
/// “CommFunction.cpp”
// Ansi_To_Uncdode
bool Ansi_To_Uncdode( CString& lpwTarget, LPSTR lpSource )
{
DWORD dwMinSize = MultiByteToWideChar (CP_ACP, 0, lpSource, -1, NULL, 0);
CString strTemp ;
strTemp.GetBuffer( dwMinSize*2 ) ;
lpwTarget.GetBuffer( dwMinSize*2 ) ;LPWSTR lpwDest = (LPWSTR)(LPCSTR)strTemp ;
MultiByteToWideChar( CP_ACP, 0, lpSource, -1, (LPWSTR)(LPCSTR)lpwDest, dwMinSize );lpwTarget = lpwDest;
//::AfxMessageBox( lpwTarget ) ;
//::AfxMessageBox( (CString)lpwDest ) ;return true ;
}
// Ansi_To_Uncdode
bool Ansi_To_Uncdode( CString& lpwTarget )
{
CString strSource = lpwTarget ;
LPSTR lpSource = (LPSTR)strSource.GetString() ; // GetBuffer
DWORD dwMinSize = MultiByteToWideChar (CP_ACP, 0, lpSource, -1, NULL, 0);
CString strTemp ;
strTemp.GetBuffer( dwMinSize*2 ) ;
lpwTarget.GetBuffer( dwMinSize*2 ) ;LPWSTR lpwDest = (LPWSTR)(LPCSTR)strTemp ;
MultiByteToWideChar( CP_ACP, 0, lpSource, -1, (LPWSTR)(LPCSTR)lpwDest, dwMinSize );lpwTarget = lpwDest;
//::AfxMessageBox( lpwTarget ) ;
//::AfxMessageBox( (CString)lpwDest ) ;return true ;
}
// Uncdode_To_Ansi
bool Uncdode_To_Ansi(CString& strData )
{
// 输入必须是Unicode,否则,输出编码会出错
if (!strData) return false;
int nLen = WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)strData.GetBuffer(), -1, NULL, 0, NULL, NULL);
CString strDest ;
strDest.GetBuffer( nLen + 1 );LPSTR lpwstr = (LPSTR)(LPCTSTR)strDest.GetBuffer();
LPCWCH lpcch = (LPCWCH)(LPCTSTR)strData.GetBuffer();
WideCharToMultiByte(NULL, 0, lpcch, -1, lpwstr, nLen, NULL, FALSE);//lpwstr[nLen] = '\0';
//memcpy(strData.GetBuffer(), lpcch, nLen+1) ;
//::AfxMessageBox( (char *)lpcch ) ;
//::AfxMessageBox( strData ) ;strDest = strData ; return true ;
}
UNCODE 与 ANSI 编码互相转换相关推荐
- ansi编码转换_8b/1b编码是个什么东东
使用串行比并行总线可以节省更多的布线空间,芯片.电缆等的尺寸可以做得更小,同时传输速率更高.但是,在很多数字系统如CPU.DSP.FPGA等内部,进行数据处理的最小单位都是Byte,即8个bit,如何 ...
- android mp3 lrc歌词文件utf-8歌词显示为乱码,百度歌词显示乱码 LRC歌词批量转换 UTF-8编码批量转换为GB或ANSI 文本编码批量转换...
百度歌词显示乱码LRC歌词批量转换UTF-8编码批量转换为GB或ANSI 文本编码批量转换 当从百度下载很多歌词的时候,发现在一些MP3上播放总是显示乱码,这时以为是MP3的问题或者是百度歌词的问题, ...
- C++中字符编码的转换(Unicode、UTF-8、ANSI)
C++的项目,字符编码是一个大坑,不同平台之间的编码往往不一样,如果不同编码格式用一套字符读取格式读取就会出现乱码.因此,一般都是转化成UTF-8这种平台通用,且支持性很好的编码格式. Unicode ...
- ansi编码_了解字符编码,不再恐惧文件乱码
背景: 工作上,不同部门经常需要共享文件,偶尔会出现打开文件出现的是一堆乱码,这时候很多人的第一反应是恐惧,认为是数据传输出现错误问题,要求发送方再重新传输一份.其实主要都是字符编码不一致的原因,只要 ...
- ansi编码_Java 字符编码
点击上方蓝字关注我们! 作者介绍 王云静,Java 开发工程师,2018 年 7 月加入去哪儿网,目前在目的地 - 呼叫中心.曾获得过 ACM 亚洲区域赛铜牌. ----- 基本概念 字符集 字符(C ...
- 【转】刨根究底字符编码之七——ANSI编码与代码页
一.ANSI编码 1. 如前所述,在全世界所有国家和地区的文字符号统一编码的UCS/Unicode编码方案问世之前(UCS.Unicode后文有详细介绍),各个国家.地区为了用计算机记录并显示自己的字 ...
- 字符串处理 - ANSI - Unicode - UTF8 转换
字符串处理 - ANSI - Unicode - UTF8 转换 [C语言]字符串处理 - ANSI - Unicode - UTF8 转换 2008-11-4: 使用MultiByteToWideC ...
- 字节码:ASCII编码:单字节编码,ANSI编码:多字节编码,UNICODE编码:宽字节编码
字符字节与编码 字符是人们常用的一些记号,比如"1", "汉", "お","℃"等等,包括各种语系的语言和一些符号都可以 ...
- ANSI编码和UTF-8的区别
ANSI:英文1个字节,汉字2个字节.共16384个字符.GBK编码 UTF-8:是Unicode一种压缩形式,英文1个字节,汉字3个字节. 显然中文UTF8不如ANSI合算,这就是中国的网页用作AN ...
- 字符编码之Ascll编码,ANSI编码,Unicode编码,UTF-8编码 ,BOM
从大一上C语言就开始认识了Ascll编码,ascll码也算是我们最早所接触的编码 [1]Ascll码 Ascll码由三部分组成: 第一部分从00H到1FH共32个,一般用来通信或作为开工至之用,有的可 ...
最新文章
- QT5.3 + vs2012 + box2d环境配置
- 如何用计算机对cad的草图,AutoCAD2020图纸如何导入su草图大师软件?
- [功能发布]Excel与PowerBI互通互联升级版连接SSAS和AzureAS
- Linux 下的多线程下载工具
- 广度优先搜索练习之神奇的电梯
- ip地址配置 mongodb_MongoDB安全配置详解
- 单调栈 、 队列学习
- tomcat部署php项目 css样式丢失_webpack 打包编译有些CSS样式莫名消失?
- cocos2d-x常用工具-沈大海cocos2d-x教程23
- 运用C#在采集时进行自动验证登录[转]
- FFmpeg build under MinGW【原创】
- 18107 校赛排名
- 重写系统黑色的TabBar
- 移动APP开发的三种常见模式
- 高质量C++/C编程指南(第11章 其它编程经验)
- 达梦MPP 环境搭建
- 算法竞赛入门经典 习题6-12
- 计算机多媒体应用技术ppt课件ppt,多媒体计算机技术原理及应用十二课件.ppt
- 一名职业操盘手对交易的理解
- CSS基础综合案例1-新闻