一、编码原理
【ANSI】
在windows系统下,其所谓的ANSI编码实际上是对应当前系统 locale 的编码。各个地区不同,在中国地区默认是GBK,在台湾地区默认是BIG-5。
【utf-8】
在windows系统下,如果用自带的记事本另存为UTF8编码,实际上记事本会在其头部加上一个BOM符号,方便记事本等windows程序分辨其编码格式,但这种带BOM头的文件给其他系统或网站使用时,可能出一些小问题,所以不建议使用自带的记事本存储UTF8格式的文本。
【如何查看一个文件是什么编码】
最简单的方式就是用自带的记事本打开文件,点击另存为,看其默认格式是什么就好了。
专业的方式用UE工具打开文件,在下方就可以看到编码格式,如GBK。
二、乱码问题
- 我用VS写的源代码,发到别人的电脑,别人用VC++6.0打开,经常发生乱码。
三、分析
打开我用VS写的的源代码,发现其以UTF8编码。
用他们VC++6.0新建一个普通项目,把他这个不会乱码的项目的cpp文件拷贝过来,分析其编码,发现其是GBK编码。得出结论,他的VC6默认以GBK打开源代码。
所以当我把我的UTF8编码的源代码发给他的时候,他的VC6以ANSI-GBK编码打开此文件,看到的就是乱码。
四、解决方案
将源代码用UE工具打开,点击另存为,选择ANSI,点击确定,随后UE工具会提示选择使用ANSI中的哪种编码,选择GBK编码。然后把这份GBK编码的源代码发给对方即可。