嗨,我试图从Microsoft SQL服务器转换一些日志文件,但这些文件是使用UTf-16 LE编码的,iconv似乎无法转换它们。我正在做:
iconv -f UTF-16LE -t UTF-8 <filename>
我还尝试删除行尾的任何回车符(如果有的话),但这也没有解决问题。如果我使用gedit保存它,那就可以了,但这不是一个可行的解决方案,因为我有数百个这样的文件。
编辑:请查看缺少选项的新答案
h43kikqp1#
我忘了-o开关!最后一个命令是:
-o
iconv -f UTF-16LE -t UTF-8 <filename> -o <new-filename>
pu3pd22g2#
您指定的命令将输出到stdout。您可以使用-o参数,或重定向输出:-o:
iconv -f UTF-16LE -t UTF-8 infile -o outfile
带管道:
iconv -f UTF-16LE -t UTF-8 infile > outfile
两者都会产生预期的结果。但是,某些版本的iconv(例如macOS上的v1)不支持-o参数,您将看到转换后的文本回显到stdout。在这种情况下,请使用管道选项。
2条答案
按热度按时间h43kikqp1#
我忘了
-o
开关!最后一个命令是:
pu3pd22g2#
您指定的命令将输出到stdout。您可以使用
-o
参数,或重定向输出:-o
:带管道:
两者都会产生预期的结果。
但是,某些版本的iconv(例如macOS上的v1)不支持
-o
参数,您将看到转换后的文本回显到stdout。在这种情况下,请使用管道选项。