开发测试环境

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 编码互相转换相关推荐

  1. ansi编码转换_8b/1b编码是个什么东东

    使用串行比并行总线可以节省更多的布线空间,芯片.电缆等的尺寸可以做得更小,同时传输速率更高.但是,在很多数字系统如CPU.DSP.FPGA等内部,进行数据处理的最小单位都是Byte,即8个bit,如何 ...

  2. android mp3 lrc歌词文件utf-8歌词显示为乱码,百度歌词显示乱码 LRC歌词批量转换 UTF-8编码批量转换为GB或ANSI 文本编码批量转换...

    百度歌词显示乱码LRC歌词批量转换UTF-8编码批量转换为GB或ANSI 文本编码批量转换 当从百度下载很多歌词的时候,发现在一些MP3上播放总是显示乱码,这时以为是MP3的问题或者是百度歌词的问题, ...

  3. C++中字符编码的转换(Unicode、UTF-8、ANSI)

    C++的项目,字符编码是一个大坑,不同平台之间的编码往往不一样,如果不同编码格式用一套字符读取格式读取就会出现乱码.因此,一般都是转化成UTF-8这种平台通用,且支持性很好的编码格式. Unicode ...

  4. ansi编码_了解字符编码,不再恐惧文件乱码

    背景: 工作上,不同部门经常需要共享文件,偶尔会出现打开文件出现的是一堆乱码,这时候很多人的第一反应是恐惧,认为是数据传输出现错误问题,要求发送方再重新传输一份.其实主要都是字符编码不一致的原因,只要 ...

  5. ansi编码_Java 字符编码

    点击上方蓝字关注我们! 作者介绍 王云静,Java 开发工程师,2018 年 7 月加入去哪儿网,目前在目的地 - 呼叫中心.曾获得过 ACM 亚洲区域赛铜牌. ----- 基本概念 字符集 字符(C ...

  6. 【转】刨根究底字符编码之七——ANSI编码与代码页

    一.ANSI编码 1. 如前所述,在全世界所有国家和地区的文字符号统一编码的UCS/Unicode编码方案问世之前(UCS.Unicode后文有详细介绍),各个国家.地区为了用计算机记录并显示自己的字 ...

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

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

  8. 字节码:ASCII编码:单字节编码,ANSI编码:多字节编码,UNICODE编码:宽字节编码

    字符字节与编码 字符是人们常用的一些记号,比如"1", "汉", "お","℃"等等,包括各种语系的语言和一些符号都可以 ...

  9. ANSI编码和UTF-8的区别

    ANSI:英文1个字节,汉字2个字节.共16384个字符.GBK编码 UTF-8:是Unicode一种压缩形式,英文1个字节,汉字3个字节. 显然中文UTF8不如ANSI合算,这就是中国的网页用作AN ...

  10. 字符编码之Ascll编码,ANSI编码,Unicode编码,UTF-8编码 ,BOM

    从大一上C语言就开始认识了Ascll编码,ascll码也算是我们最早所接触的编码 [1]Ascll码 Ascll码由三部分组成: 第一部分从00H到1FH共32个,一般用来通信或作为开工至之用,有的可 ...

最新文章

  1. QT5.3 + vs2012 + box2d环境配置
  2. 如何用计算机对cad的草图,AutoCAD2020图纸如何导入su草图大师软件?
  3. [功能发布]Excel与PowerBI互通互联升级版连接SSAS和AzureAS
  4. Linux 下的多线程下载工具
  5. 广度优先搜索练习之神奇的电梯
  6. ip地址配置 mongodb_MongoDB安全配置详解
  7. 单调栈 、 队列学习
  8. tomcat部署php项目 css样式丢失_webpack 打包编译有些CSS样式莫名消失?
  9. cocos2d-x常用工具-沈大海cocos2d-x教程23
  10. 运用C#在采集时进行自动验证登录[转]
  11. FFmpeg build under MinGW【原创】
  12. 18107 校赛排名
  13. 重写系统黑色的TabBar
  14. 移动APP开发的三种常见模式
  15. 高质量C++/C编程指南(第11章 其它编程经验)
  16. 达梦MPP 环境搭建
  17. 算法竞赛入门经典 习题6-12
  18. 计算机多媒体应用技术ppt课件ppt,多媒体计算机技术原理及应用十二课件.ppt
  19. 一名职业操盘手对交易的理解
  20. CSS基础综合案例1-新闻

热门文章

  1. 浅谈IPFS星际文件系统和Filecoin是什么?
  2. 南师大GIS考研数据库2015年第三题
  3. might和could的区别用法_could might would should区别用法
  4. 计算机没有usb硬件,电脑开机启动项中没有USB设备启动项怎么办?
  5. Vim简单介绍和使用方法
  6. 局域网ip扫描工具_树莓派无屏幕自动获取IP诸方法
  7. 百度快排(百度下拉)刷词原理是什么?
  8. ios微信小程序下拉刷新怎么配_微信小程序之上拉加载与下拉刷新
  9. 中国3G蛋糕1.5万亿 10倍三峡工程
  10. 早上如何泡上一杯质量上佳的柠檬水