66

您好我正在尝试从 Microsoft SQL 服务器转换一些日志文件,但这些文件是使用 UTf-16LE 编码的,并且 iconv 似乎无法转换它们。

我在做:

iconv -f UTF-16LE -t UTF-8 <filename>

如果有的话,我还尝试从行尾删除任何回车,但这也没有解决它。如果我使用有效的 gedit 保存它,但这不是一个可行的解决方案,因为我有数百个这样的文件。

编辑:请查看缺少选项的新答案

4

2 回答 2

60

我忘记-o开关了!

最后的命令是:

iconv -f UTF-16LE -t UTF-8 <filename> -o <new-filename>
于 2013-06-25T01:44:08.560 回答
27

您指定的命令将输出到标准输出。您可以使用该-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参数,您会看到转换后的文本回显到标准输出。在这种情况下,请使用管道选项。

于 2018-04-10T06:01:43.307 回答