3

我已经用 Perl 从我们的数据库 AS/400 DB2 中导入了一个表。

问题是字符串是用 EBCDIC Latin-1(意大利语)编码的。

如何在 Linux bash 中将生成的文件转换为纯 utf-8?

4

3 回答 3

5

从...开始

iconv -f EBCDIC-IT -t utf-8 <filename>

然后检查输出,如果不完全正确,请检查.man iconv列出的可用编码iconv -l

(请注意,“EBCDIC Latin-1”有点奇怪。“Latin-1”表示 ISO-8859-1,而“EBCDIC”则完全是另外一回事。试着file <filename>让计算机对你实际上是什么编码进行有根据的猜测看着。)

于 2016-04-08T09:25:01.653 回答
2

我对以下行很幸运:

iconv -f IBM037 -t utf-8 input_ebcdic.txt -o output.txt
于 2020-03-11T21:54:52.510 回答
1

这很简单iconv

iconv -f ISO8859-1   -t "UTF-8" result.csv -o new_result.csv

ISO8859-1 是 Latin-1 编码格式。有关编码列表,请参阅 IBM 官方文档中的此表:https ://www.ibm.com/support/knowledgecenter/ssw_aix_53/com.ibm.aix.nls/doc/nlsgdrf/iconv.htm%23d722e3a267mela

请注意,转换可能会留下来自 EBCDIC 的无效 UTF-8 字符。一个示例是字符串中的 NULL 字符。为避免这种情况,请使用 HEX 编辑器并将十六进制值替换为 00 到 20(空格字符)。

于 2016-04-08T09:26:57.593 回答