0

不知道原码是什么,所以假设原码是IBM850或者ISO8859-1。下面我的流程

  1. IBM850 -> UTF8
    如果可以,我认为原始代码是 IBM850,如果不可以,请执行下一步:

  2. ISO8859-1 -> UTF8
    如果可以的话,我认为原始代码是 UTF8。

但是有一个问题,如果原码是ISO8859-1,会被IBM850识别。如果原始代码是 IBM850,它将被识别为 ISO8859-1。

IBM850 和 ISO8859-1 之间似乎有共同点。

谁能帮帮我,谢谢。

4

1 回答 1

0

是的,通过测试转换是失败还是成功,只有最简单的自动检测是可能的。它不适用于(几乎)任何输入都有效的输入编码。

您应该对可能的输出有更多的了解,以测试从 翻译IBM850或 从翻译后是否更有意义ISO8859-1。这就是encalibenca什么。您可能可以从一些简单的期望开始检查:

  1. 您的源是否恰好在ASCII两种编码的子集中?然后你对任何转换都很满意(但你根本无法知道原始编码)。
  2. 您的代码是否使用方框图字符?如果没有,很容易拒绝一些候选人IBM850
  3. 您的代码是否使用来自 的控制字符ISO8859-1?如果没有,很容易拒绝一些候选ISO8859-1代码点0x80-0x9F是否使用。
  4. 非 ASCII 代码片段是否总是以自然语言表示文本?然后,您可以对字符及其对使用频率表,选择源编码,使结果更接近您在这些标准上的自然语言。(如果两种变体几乎同样可以接受,最好给出错误消息并将最终决定留给人类)。
于 2013-01-31T07:04:38.767 回答