美帝那边的一个 donet 项目,打开后发现一段string里面各种乱码。一通折腾后发现是编码格式问题。这段string所在的类文件保存格式为ANSI,而不是VS默认的UTF-8。
ANSI编码电脑是认识的,问题是,ANSI编码有很多种。不同的国家和地区制定了不同的标准,在大陆是GB2312,在*是BIG5,在日本又成了JIS,这些都是互不兼容的。电脑遇到这种格式的文件,会根据系统当前语言环境选择对应的版本解析。这边我的电脑的语言环境是简体中文,电脑看到这ANSI编码,根据当前系统语言认为是GB2312,于是很欢乐的解析了。然而此ANSI编码非彼ANSI编码,驴头不对马嘴,自然就乱码了。
问题发现了,那么怎么解决那?
既然是编码问题,直接改变编码就是了。这个简单,记事本就可以。文件打开另存为,选择UTF-8编码。OK!
且慢,这个果断是不能OK的。因为当前另存为其他编码的过程是一个转码的过程。电脑是要把本地环境下ANSI,也就是GB2312里"外星人入侵地球"的编码转化成UTF-8里"外星人入侵地球"的编码。问题是,这段编码在原来的环境里用的不是GB2312,是其他编码阿。说的也不是"外星人入侵地球"而是"今天天气哈哈哈"。就好比电脑把日语翻译成中文时翻译错了,现在你接着把这中文继续翻译成英语,他不可能对。
恩,问题是原来这编码是啥那? 不知道啊。不过,项目不是美帝那边过来的嘛,那就换成美帝的语言环境试试呗。控制面板-区域和语言-管理-更改系统区域设置-选择英语(美国)-重启。然后重新打开项目,一切ok,string里的错误都没有了。好了,文件打开另存为,选择UTF-8。然后将语言环境重新设置回中文,重启,依然ok,问题解决。
相关文章
- iOS 7原生二维码扫描中文gbk编码乱码的解决
- Java web中常见编码乱码问题(二)
- JDBC读取Oracle的US7ASCII编码中文乱码及不同编码下汉字占用字节的问题
- [转]字符编码,ansi, unicode,utf-8, utf-16
- Ansi、Unicode、UTF8等编码字符串之间的转换和写入文本文件(学习中……)
- JAVA字符编码乱码问题:Unicode,ISO-8859-1,GBK,UTF-8编码及相互转换
- java乱码 java使用的编码是utf-8还是utf-16还是unicode
- C/C++ 各种字符编码字符串的转换 可用于XML文件的字符转化读写 (收集 GBK - UTF8 - Unicode - ANSI )
- 字符编码方式及判断整理(ANSI,Unicode,utf-8,utf-16,utf-32)
- 两个不同编码方式的网页之间传递参数,出现乱码问题,。。参数传过来后成为乱码,在线等