admin 管理员组

文章数量: 887021

疑难杂症

文章目录

  • IDEA修改文件编码格式
  • Reload与Convert
  • 总结

IDEA修改文件编码格式

点击右下角,选择目标编码格式

点击后会弹出如下窗口,点击Reload

中文乱码情况解决

Reload与Convert

在上面的步骤中,弹出窗口有两个选项,一个是Reload,一个是Convert,如果点击的是Convert,则可能出现乱码发生了一些变化,但并没有解决的情况——

而且之后无论如何切换,乱码都不会再发生变化,即使我们此时推出IDEA,从文件夹中尝试更改文件的编码格式,乱码都会保持下去,无法恢复原样

原因如下:

首先:

  • Reload 表示使用新编码重新加载,新编码不会保存到文件中,重新打开此文件,旧编码是什么依旧还是什么。
  • Convert 表示使用新编码进行转换,新编码会保存到文件中,重新打开此文件,新编码是什么则是什么。

而UTF-8与GBK的编码规则是不同的:

  • UTF-8 可变长字符编码,是unicode码的具体实现,UTF-8用1到6个字节编码Unicode字符。如果只有一个字节则其最高二进制位为0;如果是多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码的字节数,其余各字节均以10开头。
  • GBK 专门为解决汉字的编码而生成的解决方案。字符有一字节和双字节编码,00–7F范围内是第一个字节,和ASCII保持一致,此范围内严格上说有96个文字和32个控制符号。之后的双字节中,前一字节是双字节的第一位。总体上说第一字节的范围是81–FE(也就是不含80和FF),第二字节的一部分领域在40–7E,其他领域在80–FE

所以,如果是先重新加载,则是在IDEA中进行转换,会自动解决不同编码格式的问题
但如果是先通过A编码类型文件B编码类型文件,然后再打开的方式进行转码,则会因为两者的编码规则不同导致字符在二进制层面上出错,从而彻底出错,无法复原

总结

所以在使用IDEA转换文件的编码格式时,推荐先点击Reload,待中文乱码正常后再点击Convert,以此来避免上述问题的出现

本文标签: 疑难杂症