乱码的情况
可逆的情况
-
出现方框,某种字体没有这个字,就会出现方框,只需要找到有这个字的字体就行。比如“乱”字,这种字体没有这个字:
只需要转换其它字体就行了
-
解码的方式和编码的方式不一样,通常字符出现“�”字符。比如:utf-8编码方式的“乱”字,以UTF-8的解码方式能够正常显示
但在GBK情况下显示出现乱码,本身的字符二进制编码没有变,只是这个二进制编号,在GBK编码表里面代表其它字符的编号
不可逆情况
这种问题通常发生在保存文件的时候,通常这种情况下的字符显示为“?”字符。比如:GBK编码里面没有“♠”这种字符,如果强制以这种编码方式保存会自动转换成“?”字符
强制保存后再打开,再GBK下出现一个问号,UTF-8情况下同样如此
此时原来的字符编码的二进制数值,早已经再保存时发生了改变,无论如何转换字符的编码,都不能找到原来的“♠”字符
总结一下
字符的编码可逆不可逆主要看保存的时候,这个字符在这个编码类型下是否有相应的编号。我们都知道ASCII编码,每一个英文字母都有相应的编号,比如“a”的编号在ASCII里面是97,所以保存“a”的时候可以以这个编码保存,保存时不会发生改变。而“♠”字符在GBK编码里面没有对应的编号,如果强制保存,系统会自动保存成“?”的字符编号,导致原有的编号发生改变,即使你使用其它编码方式打开,也没有办法还原成原有的编号,导致字符的丢失。