ISO-8859-1和Windows-1252的区别

【1】ISO-8859-1

ISO-8859-1,正式编号为ISO/IEC 8859-1:1998,又称Latin-1或“西欧语言”,是国际标准化组织内ISO/IEC 8859的第一个8位字符集。

ISO-8859-1编码是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号。

它以ASCII为基础,在空置的0xA0-0xFF的范围内,加入96个字母及符号,藉以供使用附加符号的拉丁字母语言使用。Unicode的前0-255个字符与ISO-8859-1相一致。

因为ISO-8859-1编码范围使用了单字节内的所有空间,在支持ISO-8859-1的系统中传输和存储其他任何编码的字节流都不会被抛弃。换言之,把其他任何编码的字节流当作ISO-8859-1编码看待都没有问题。这是个很重要的特性,MySQL数据库默认编码是Latin1就是利用了这个特性。

ASCII编码是一个7位的容器,ISO-8859-1编码是一个8位的容器。参考博文ASCII码对照表

ISO-8859-1 的较低部分(从 1 到 127 之间的代码)是最初的 7 bit ASCII。
ISO-8859-1 的较高部分(从 160 到 255 之间的代码)全都有实体名称。

这些符号中的大多数都可以在不进行实体引用的情况下使用,但是实体名称或实体编号为那些不容易通过键盘键入的符号提供了表达的方法。

注释:实体名称对大小写敏感。


【2】Windows-1252

Windows-1252经常被错误地贴上ISO-8859-1的标签,因为它们十分相似。

除了128到159(十六进制80到9F)范围内的很少使用的C1控制字符被替换为额外的字符外,Windows-1252代码页的字符和ISO-8859-1完全一致。Windows-28591代码页才是真正的ISO-8859-1,然而,英文版的Windows 7、Windows10家庭中文版 系统上没有Windows-28591代码页,至于其他系统有没有我就不知道了。

Windows10家庭中文版 上会将ISO8859-1 翻译为Windows-1252。

  • 如 JSP页面编码:
<%@ page language="java" import="java.util.*"    pageEncoding="ISO8859-1"%>
  • 浏览器得到的编码:

ISO-8859-1和Windows-1252的区别_第1张图片

你可能感兴趣的:(#,Java编码解码)