如何将带有中文字符的EBCDIC转换为UTF-8格式

如何将带有中文字符的EBCDIC转换为UTF-8格式,utf-8,ebcdic,Utf 8,Ebcdic,我需要将使用EBCDIC编码的文件转换为UTF-8格式,以便将该文件加载到支持多字节的DB2数据库中 我试过unix重新编码和iconv。他们都没有能力将IBM937转换为UTF8。我正在寻找世界上任何可以在基于unix的系统上实现这一点的实用程序(java、perl、unix)。有人能帮我吗 SL看来Java可以将IBM937代码页转换为UTF-8 您可以将输入格式指定为“cp937” 以下是Oracle页面上的两种方法: 及 Java似乎可以将IBM937代码页转换为UTF-8 您可以将输入

我需要将使用EBCDIC编码的文件转换为UTF-8格式,以便将该文件加载到支持多字节的DB2数据库中

我试过unix重新编码和iconv。他们都没有能力将IBM937转换为UTF8。我正在寻找世界上任何可以在基于unix的系统上实现这一点的实用程序(java、perl、unix)。有人能帮我吗


SL

看来Java可以将IBM937代码页转换为UTF-8

您可以将输入格式指定为“cp937”

以下是Oracle页面上的两种方法:


Java似乎可以将IBM937代码页转换为UTF-8

您可以将输入格式指定为“cp937”

以下是Oracle页面上的两种方法:

看看ICU(Unicode的国际组件):

它有一个适用于IBM-937的转换器:

CU是一套成熟、广泛使用的 C/C++和Java库提供 Unicode和全球化支持 软件应用。重症监护病房广泛使用 可移植,为应用程序提供了 在所有平台和应用程序上的结果相同 在C/C++和Java软件之间。重症监护室 在非限制性条件下释放 合适的开源许可证 用于两种商业软件 和其他开源或免费软件 软件

以下是该计划的几个亮点 ICU提供的服务:

  • 代码页转换:转换文本 与Unicode和几乎任何 其他字符集或编码。重症监护室 转换表基于字符集 IBM在整个课程中收集的数据 是几十年来最 在任何地方都可以买到完整的

  • 排序规则:根据 符合一个国家的惯例和标准 特定语言、地区或地区 国家。ICU的整理基于 Unicode排序算法plus 来自的特定于区域设置的比较规则 公共区域设置数据存储库 这类数据的综合来源 数据

  • 格式化:格式化数字、日期、, 时间和货币金额取决于 所选区域的约定。 这包括每月和每月的翻译 将日期名称转换为所选语言, 选择适当的缩写, 正确排序字段等。此 数据也来自公共区域设置 数据存储库

  • 时间计算:多种类型的 日历的提供超出了 传统的公历。A. 一套完整的时区计算 提供了API

  • Unicode支持:ICU密切跟踪 Unicode标准,提供简单的 访问所有的Unicode 字符属性,Unicode 规范化、案例折叠和其他 根据 Unicode标准

  • 正则表达式:ICU的正则表达式 表达式完全支持Unicode 同时提供极具竞争力的服务 表演

  • Bidi:支持处理文本 包含从左到右的混合 (英语)和从右向左(阿拉伯语或阿拉伯语) (希伯来语)数据

  • 文本边界:定位位置 包含单词、句子、段落 一系列文本或标识位置 这将适用于生产线 显示文本时换行

还有更多。有关详细信息,请参阅ICU用户指南

看看ICU(Unicode的国际组件):

它有一个适用于IBM-937的转换器:

CU是一套成熟、广泛使用的 C/C++和Java库提供 Unicode和全球化支持 软件应用。重症监护病房广泛使用 可移植,为应用程序提供了 在所有平台和应用程序上的结果相同 在C/C++和Java软件之间。重症监护室 在非限制性条件下释放 合适的开源许可证 用于两种商业软件 和其他开源或免费软件 软件

以下是该计划的几个亮点 ICU提供的服务:

  • 代码页转换:转换文本 与Unicode和几乎任何 其他字符集或编码。重症监护室 转换表基于字符集 IBM在整个课程中收集的数据 是几十年来最 在任何地方都可以买到完整的

  • 排序规则:根据 符合一个国家的惯例和标准 特定语言、地区或地区 国家。ICU的整理基于 Unicode排序算法plus 来自的特定于区域设置的比较规则 公共区域设置数据存储库 这类数据的综合来源 数据

  • 格式化:格式化数字、日期、, 时间和货币金额取决于 所选区域的约定。 这包括每月和每月的翻译 将日期名称转换为所选语言, 选择适当的缩写, 正确排序字段等。此 数据也来自公共区域设置 数据存储库

  • 时间计算:多种类型的 日历的提供超出了 传统的公历。A. 一套完整的时区计算 提供了API

  • Unicode支持:ICU密切跟踪 Unicode标准,提供简单的 访问所有的Unicode 字符属性,Unicode 规范化、案例折叠和其他 根据 Unicode标准

  • 正则表达式:ICU的正则表达式 表达式完全支持Unicode 同时提供极具竞争力的服务 表演

  • Bidi:支持处理文本 包含从左到右的混合 (英语)和从右向左(阿拉伯语或阿拉伯语) (希伯来语)数据

  • 文本边界:定位位置 包含单词、句子、段落 一系列文本或标识位置 这将适用于生产线 显示文本时换行。
    static String readInput() {
    
        StringBuffer buffer = new StringBuffer();
        try {
            FileInputStream fis = new FileInputStream("test.txt");
            InputStreamReader isr = new InputStreamReader(fis,
                              "cp937");
            Reader in = new BufferedReader(isr);
            int ch;
            while ((ch = in.read()) > -1) {
                buffer.append((char)ch);
            }
            in.close();
            return buffer.toString();
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }
    
    static void writeOutput(String str) {
    
        try {
            FileOutputStream fos = new FileOutputStream("test.txt");
            Writer out = new OutputStreamWriter(fos, "UTF8");
            out.write(str);
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }