【问题标题】:linux libiconv transcode from ISO8859 or IBM850 to UTF8 errorlinux libiconv 从 ISO8859 或 IBM850 转码为 UTF8 错误
【发布时间】:2013-01-15 04:55:19
【问题描述】:

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

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

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

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

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

谁能帮帮我,谢谢。

【问题讨论】:

    标签: linux iso-8859-1 iconv libiconv


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      • 2016-07-29
      • 2013-05-18
      • 2014-07-03
      • 2012-11-13
      • 1970-01-01
      相关资源
      最近更新 更多