在 Java 程序中经常可以看到这样的代码:String.getBytes("ISO-8859-1")。
虽然大概知道这是以单字节来解码,也不写这样的代码,但是见得多了,总要多了解下。
ISO-8859-1 编码特性
ISO-8859-1 编码是单字节编码,向下兼容 ASCII,其编码范围是 0x00-0xFF。其中 0x00-0x7F 之间完全和 ASCII 一致,0x80-0x9F 之间是控制字符,0xA0-0xFF 之间是文字符号。
ISO-8859-1 收录的字符除 ASCII 收录的字符外,还包括拉丁语、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。欧元符号出现的比较晚,没有被收录在 ISO-8859-1 当中。
因为 ISO-8859-1 编码范围使用了单字节内的所有空间,在支持 ISO-8859-1 的系统中传输和存储其他任何编码的字节流都不会被抛弃。换言之,把其他任何编码的字节流当作 ISO-8859-1 编码看待都没有问题。这是个很重要的特性,默认编码是 Latin1 就是利用了这个特性。
ASCII 是一个 7 位的容器,ISO-8859-1 编码是一个 8 位的容器。Latin-1 是 ISO-8859-1 的别名,有些环境下写作 Latin-1。

