Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux中从EBCDIC到UTF8的转换_Linux_Bash_Utf 8_Iconv_Ebcdic - Fatal编程技术网

Linux中从EBCDIC到UTF8的转换

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

我已经用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-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