当我以UTF-8保存文本文档时,基本上是这样说:计算机,使用安装在计算机某处的UTF8的代码页来弄清楚,如何将1和0转换为字符,对吗?
保存此内容时:
激光
äüß
#§
在ISO-8895-1中,它变成了这个(在Linux上,使用Kate编辑器):
æ¿å
äüÃ
#§
这里没有显示的是第一行和第二行中显示的是一些奇怪的方块而不是字符(可以在开发人员工具中看到)。
所以我的理解是,这意味着在utf-8中表示激活的0和1的组合被映射到ISO-8895-1中的æ,对吧?并且奇怪的正方形> <因为ISO-8895-1字符集中没有该二进制数的映射,所以计算机默认使用其他编码。
这是对的吗?
答案 0 :(得分:0)
是的,有点正确。 如果将文件存储为UTF-8,它通常会获得一个特殊的字节组合,指示其在文件开头的编码类型。我想,凯特(不知道这个编辑器)不会认识到这一点,只是将文件显示为其他内容。所以基本上,你的文件仍然是正确的,但只是以错误的方式可视化。 奇怪的方块是另一个指标,凯特不能识别那些前导字节,因为通常编辑会将它们隐藏起来并只使用这些信息来正确显示文件。
答案 1 :(得分:0)
你非常正确。例如,The character U+6FC0 (激)以UTF-8中的3个字节编码:0xE6 0xBF 0x80。
如果您在ISO-8859-1中解释这些字节,则会得到字符æ¿
。根据ISO-8859-1的版本,0x80根本没有映射到字符,或者映射到不可打印的控制字符,这就是为什么你只能看到三个字节的两个字符。
如果您使用Windows-1252代替ISO-8859-1,则会看到æ¿€
。