ANSI、UNICODE、UTF-8 文件编码转换
来源:互联网 发布:mac war解压工具 编辑:程序博客网 时间:2024/06/10 06:01
众所周知,MFC 的 CFile、CStdioFile 是不支持 Unicode、UTF-8编码编码的读取的,但是现实中生活这样的文本文件遍地都是,如果生读的话,必然造成乱码。幸好,MS 为了解决这个问题,提供了 MultiByteToWideChar 和 WideCharToMultiByte 两个函数,可用于多字节编码和 Unicode 的转换。但是如果我们每次读取文件之后,手动去调用这两个 API 函数的话,一是麻烦,二是干扰我们正常的业务处理逻辑,违背了程序设计“强内聚,弱耦合”的原则。更别说,要调用者两个函数,在不同的工程环境“项目->属性->常规”里面,选择的编译环境 Unicode 和多字节,这两个函数的参数差异还是很大的,LPSTR 和 LPWSTR 互相转来转去。所以为了解决这个问题,站在巨人们的肩膀上,编写了一个类,继承自 CStdioFile,重载了 Open、ReadString、WriteString 三个函数,并新增获取文件编码 (Encoding、CodePage),设置新保存文件的编码等一系列函数,可以实现 ANSI/ASCII、Unicode16-BE、、Unicode16-LE、UTF-8 任意编码之间的转换,发上来纪念一下。
如图
PS:1、C++ 开发真是辛苦,为这些不痛不痒的小事就够折腾的;
2、关于 Unicode 编码的更多解释,请参考官网:http://www.unicode.org/faq/utf_bom.html
- ANSI、UNICODE、UTF-8 文件编码转换
- Ansi,Unicode(little endian),Unicode big endian,UTF-8编码文件相互转换
- 有关unicode, UTF-8, ANSI等编码转换
- Windows下字符编码转换(ANSI <--> Unicode <--> UTF-8)
- ANSI、UNICODE、UTF-8编码格式相互之间转换
- 文件编码UNICODE、UTF-8、ANSI、ASCII、GB2312、GBK详解
- .java文件的ANSI编码转换为UTF-8编码
- .java文件的ANSI编码转换为UTF-8编码
- ASCII、ANSI、UNICODE及UTF-8编码
- ASCII、ANSI、Unicode及UTF-8编码
- ASCII、ANSI、UNICODE及UTF-8编码
- ASCII、ANSI、UNICODE及UTF-8编码
- ASCII、ANSI、UNICODE及UTF-8编码
- ANSI,Unicode,UTF-8编码详解
- ASCII、ANSI、Unicode及UTF-8编码
- ANSI、ASCII、Unicode和UTF-8编码
- ANSI、ASCII、Unicode和UTF-8编码
- ANSI、ASCII、Unicode和UTF-8编码
- socket 编程及相关的点评
- 20081115上线总结
- Assembly(程序集)_Professional C# 3rd Edition
- 取最后一条插入的数据
- C#生成XML文件
- ANSI、UNICODE、UTF-8 文件编码转换
- 数据挖掘,数据分析
- 关于linux的音频驱动(二)
- TransManager
- 世界是美好的
- 数据库营销经常失败的十大原因探讨
- SQLServer 如何获取刚插入数据的Id号
- rownum 学习笔记
- J2ME中ChoiceGroup代码实战