美帝那边的一个 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,问题解决。
相关文章
- 修改tomcat的编码方式,可以解决某些get请求乱码问题
- c++输出字符数组乱码_C++字符编码问题探究和中文乱码的产生
- go语言 进行文件编码格式转换中(GBK 转UTF8),可能出错部分文件出现乱码情况的解决。
- Python 编码问题:‘ascii‘ codec can‘t encode characters in position 的解决方案(中文乱码终极解决方案)
- Python编码格式导致的csv读取错误(, pandas.csv_read)
- 【转】Ubuntu Linux 下文件名乱码(无效的编码)的快速解决办法
- C语言文件操作函数fwrite导致写入文件的内容乱码的问题解决方案
- python使用adb获取Android Phone截图(解决Windows传输编码导致png文件损坏的问题)
- 学习电脑编码utf-8,ansi编码的基础知识等
- 解决Excel打开UTF-8编码CSV文件乱码的问题亲测有效