Linux中从EBCDIC到UTF8的转换
我已经用Perl从数据库中导入了一个表作为/400 DB2 问题是字符串是用EBCDIC拉丁语-1(意大利语)编码的 如何在Linux bash中将生成的文件转换为普通utf-8?从Linux中从EBCDIC到UTF8的转换,linux,bash,utf-8,iconv,ebcdic,Linux,Bash,Utf 8,Iconv,Ebcdic,我已经用Perl从数据库中导入了一个表作为/400 DB2 问题是字符串是用EBCDIC拉丁语-1(意大利语)编码的 如何在Linux bash中将生成的文件转换为普通utf-8?从 iconv -f EBCDIC-IT -t utf-8 <filename> iconv-f EBCDIC-IT-t utf-8 然后检查输出,如果不完全正确,请检查maniconv和iconv-l中列出的可用编码 (请注意,“EBCDIC Latin-1”有点奇怪。“Latin-1”表示ISO-8
iconv -f EBCDIC-IT -t utf-8 <filename>
iconv-f EBCDIC-IT-t utf-8
然后检查输出,如果不完全正确,请检查maniconv
和iconv-l
中列出的可用编码
(请注意,“EBCDIC Latin-1”有点奇怪。“Latin-1”表示ISO-8859-1,而“EBCDIC”则完全是另一回事。请尝试使用
文件让计算机对您实际看到的编码进行有根据的猜测。)使用iconv
很简单
iconv -f ISO8859-1 -t "UTF-8" result.csv -o new_result.csv
ISO8859-1是拉丁-1编码格式。有关编码列表,请参阅IBM官方文档中的下表:
请注意,转换可能会从EBCDIC中留下无效的UTF-8字符。例如字符串中的空字符。为了避免这种情况,请使用十六进制编辑器并将十六进制值从00替换为20(空格字符)。我很幸运地看到了下面这一行:
iconv -f IBM037 -t utf-8 input_ebcdic.txt -o output.txt