Eclipse保存文件时出现字符编码错误,如下图所示:
Ecplise的默认编码,如下图所示:
eclipse 由于开源所以支持了比较杂的编码方式,而这些一个工程导入时添加了不少的外来程序,由于不是同一工程一次编码带来了其中含有 GBK 或 UTF8 或 UTF16 或 ASCII 等文件编译时就会出现错误警告。
UTF-8:Unicode Transformation Format- 8bit,允许含 BOM,但通常不含 BOM 。是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。
UTF-8 包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8 编码的文字可以在各国支持UTF8字符集的浏览器上显示。如果是 UTF8 编码,则在外国人的英文IE上也能显示中文,他们无需下载IE的中文语言支持包。
GBK 是国家标准GB2312 基础上扩容后兼容 GB2312 的标准。GBK的文字编码是用双字节来表示的,即不论中、英文字符均使用双字节来表示,为了区分中文,将其最高位都设定成1。
GBK 包含全部中文字符,是国家编码,通用性比 UTF8 差,不过 UTF-8 占用的数据库比 GBK 大。
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。
Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
1990年开始研发,1994年正式公布。
Unicode的最初目标,是用1个16位的编码来为超过65000个字符提供映射。但这还不够,它不能覆盖全部历史上的文字,也不能解决传输的问题,尤其在那些基于网络的应用中。已有的软件必须做大量的工作来解码16位的数据。
因此,Unicode用一些基本的保留字符制定了三套编码方式。它们分别是UTF-8、UTF-16和UTF-32。
正如名字所示,在UTF-8中,字符是以8位序列来编码的,用一个或几个字节来表示一个字符。这种方式的最大好处是:UTF-8保留了ASCII字符的编码作为它的一部分,例如,在UTF-8和ASCII中,“A”的编码都是0x41.。
UTF-16和UTF-32分别是Unicode的16位和32位编码方式。考虑到最初的目的,通常说的Unicode就是指UTF-16。在讨论Unicode时,搞清楚哪种编码方式非常重要。
- UTF-8没有字节序和讨厌的BOM问题
- UTF-8制霸互联网几乎成为事实标准
- UTF-8对ASCII极佳的兼容性
- 在英语统治的地球上,UTF-8可以利用单字节特性节省体积
我倒觉得UTF-8的流行主要是英语作为国际语言的压倒性优势……互联网时代,节省的体积就是流量,流量就是 $ € ¥ ……
- UTF-16在绝大多数情况下都是定长的,处理起来容易,然而现在处理器和内存都越发不值钱,这个优势没那么重要了。
Linux系统中默认的中文字体编码为UTF-8, 而Windows系统中默认的中文编码为GBK,Ecplise默认的中文编码也是GBK。