繁体   English   中英

Linux 中从 EBCDIC 到 UTF8 的转换

[英]Conversion from EBCDIC to UTF8 in Linux

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

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

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

开始于

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

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

(请注意,“EBCDIC Latin-1”有点奇怪。“Latin-1”表示 ISO-8859-1,而“EBCDIC”则完全不同。尝试file <filename>以让计算机有根据地猜测是什么您实际正在查看的编码。)

我对以下行很幸运:

iconv -f IBM037 -t utf-8 input_ebcdic.txt -o output.txt

使用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 字符。 为避免这种情况,请使用十六进制编辑器并将十六进制值替换为 00 到 20(空格字符)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM