- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C编译器对字符串编码转换
C++编译器对字符
串的编码转换
殷海峰
2012 年07 月20 日
变更记录
变更记录
日期 作者 说 明
2012.07.18 殷海峰 完成初稿
增加了如下内容
1、研究方法;
2012.07.20 殷海峰 2 、MinGW gcc 处理 Unicode 字符串;
3、VC++6.0 处理rc 文件里的字符串;
4 、VC++.NET 对字符串的处理
I
目 录
目 录
第1 章 说明3
1.1 前言3
1.2 MinGW gcc 3
1.2.1 ANSI字符串3
1.2.2 Unicode字符串4
1.2.3 #include 4
1.3 VC++6.0 4
1.3.1 ANSI字符串5
1.3.2 Unicode字符串5
1.3.3 资源文件5
1.4 VC++.NET 5
II
第3 章 VC++9.0
第1 章 说明
1.1 前言
本文将研究C++编译器对字符串的编码转换。如下面两行代码包含了一个
ANSI 字符串和一个Unicode 字符串(也叫Wide 字符串)。编译之后,它们具
体的编码是什么?
const char* pA = 123456789 测试; //ANSI 字符串
const wchar_t* pW = L123456789 测试; //Unicode 字符串
使用UltraEdit 以二进制打开编译生成的exe 文件。找到123456789 之后就
可以查看ANSI 字符串中“测试”的编码;找到16 进制字符串 31 00 32 00
33 00 34 00 35 00 就可以查看Unicode 字符串中“测试”的编码。使用这个
方法,本文对 MinGW gcc 和 VC++ 编译器进行了研究。
1.2 MinGW gcc
在 Windows 系统下,安装 Qt Creator 2.3.1 之后,MinGW 4.4.0 就被自动
安装,其安装目录一般位于:C:\Qt\qtcreator-2.3.1\mingw 。
1.2.1 ANSI 字符串
MinGW gcc 4.4.0 编译器对ANSI 字符串的编码原则:保持其在源文件里
的原始编码,不做任何转换。
举例说明:对于Test.cpp 里的字符串测试。如果Test.cpp 的编码是ANSI
的,则测试就是ANSI 编码;如果Test.cpp 的编码是UTF-8 的,则测试就
是UTF-8 编码。编译器生成exe 的时候,仅仅在它们后面增加一个字符\0 。也
就是说同样的字符串测试,会因为Test.cpp 的编码不同而不同。同样的代码s
tr
文档评论(0)