【问题标题】:ASCII compatibles and not compatibles characters encodingASCII 兼容和不兼容字符编码
【发布时间】:2015-08-24 15:47:45
【问题描述】:

什么是与 ASCII 不兼容的字符编码示例,为什么不兼容?

另外,还有哪些与ASCII向上兼容的编码(除了UTF和ISO8859,我已经知道了)以及出于什么原因?

【问题讨论】:

  • 兼容是什么意思?读取使用一个字符集编写的文本并进行编码并使用 错误 字符集读取它?另外,UTF是什么意思?如果您将 ASCII 读取为 UTF-16 或 UTF-32,您可能会遇到解码错误。

标签: encoding ascii


【解决方案1】:

存在与 ASCII 不兼容的基于 EBCDIC 的编码。例如,我最近遇到了一封使用 CP1026 编码的电子邮件,即EBCDIC 1026。如果您查看它的字符表,字母和数字的编码偏移量与 ASCII 编码的偏移量非常不同。这让我的电子邮件解析器崩溃了,特别是因为LF 在 ASCII 中被编码为 0x25 而不是 0x0A。

【讨论】:

  • 谢谢,有其他前向兼容编码的例子吗?
  • 最常用的编码完全兼容 ASCII(ISO8859-X/Latin-X、GB 18030、Big5 等),或者至少大部分兼容 ASCII( SHIFT-JIS 等)。 EBCDIC 现在很少见。
  • Shift-JIS 是一个棘手的问题,因为 ¥ 位于 0x5c 通常是 `` 的位置。
  • @CraigRinger Shift-Jis 在 0x7E 处也有一个上划线 (U+203E) 字符来代替 '~'。然后是 ISO-2022 编码,它使用 ASCII 转义序列在单字节和多字节模式之间切换。
猜你喜欢
  • 2011-07-14
  • 2016-08-09
  • 1970-01-01
  • 2011-10-17
  • 2011-05-26
  • 2011-12-14
  • 2016-04-27
  • 2012-07-13
  • 1970-01-01
相关资源
最近更新 更多