【问题标题】:How to convert custom encoded file to UTF-8 (in Java or with a dedicated tool)如何将自定义编码文件转换为 UTF-8(在 Java 中或使用专用工具)
【发布时间】:2011-01-20 08:03:38
【问题描述】:

我用 Java 重写的旧软件使用自定义(类似于 Win-1252)编码作为数据存储。对于我正在构建的新系统,我想用 UTF-8 替换它。

所以我需要将这些文件转换为 UTF-8 来提供我的数据库。我知道使用的字符映射,但它不是任何广为人知的字符映射。例如。 “A”在位置 0x0041(如 Win-1252 中),但在 0x0042 上有一个符号,在 UTF-8 中出现在位置 0x0102 上,依此类推。有没有一种简单的方法可以用 Java 解码和转换这些文件?

我已经阅读了很多帖子,但它们都涉及某种行业标准编码,而不是自定义编码。我希望可以创建自定义 java.nio.ByteBuffer.CharsetDecoderjava.nio.charset.Charset 以将其传递给 java.io.InputStreamReader,如第一个答案 here 中所述?

欢迎提出任何建议。

【问题讨论】:

    标签: java encoding character-encoding


    【解决方案1】:

    无需复杂。只需创建一个包含 256 个字符的数组

    static char[] map = { ... 'A', '\u0102', ... }
    

    然后

    read each byte b in source
        int index = (0xff) & b; // to make it unsigned
        char c = map[index];
        target.write( c );
    

    【讨论】:

      猜你喜欢
      • 2017-02-01
      • 1970-01-01
      • 2013-09-12
      • 1970-01-01
      • 2011-07-14
      • 2011-11-07
      • 2014-02-17
      • 2016-11-13
      • 2011-10-26
      相关资源
      最近更新 更多