最近在搬砖时碰到了软件工程师最头疼的问题之一——编码问题。这里稍微做一下小节。
本博客介绍了:
- 编码的基础知识
- 如何转换编码
- 最后的结论——退Dev-C++保平安
一. 输入法的编码
在我们把我们的文本输入到相应的editor中时,可能会使用到输入法(比如我们输入中文的时候就要用到中文输入法,但是显然使用英文的时候并不需要)。
显然,我们的输入法也是有对应的编码的。所以我们很自然就有下面两个疑惑:
- 我们的输入法选用的是什么编码?
- 为什么当我们像不同编码的editor中输入文本时,永远不会出现乱码?
轮子哥的回答给了我们很好的解释
首先,我们使用的内置输入法使用的是UTF-16编码;
其次,Windows内置的API会自动转化到相应editor中的编码。
二. Source中的编码
我们现在所提的source中的编码指的是editor中的编码。
众所周知,editor中的编码,最重要的就是编码和解码的格式相一致。你用UTF-8格式保存的源代码,如果用GB18030打开,那就可能出现乱码(当然也有可能不出现乱码——比如你的代码中一个中文字符也没有)
这个主要的内容我就不细讲了&