是否可以在UTF-8中编码grep命令的输出,而不管输入文件的编码是什么?
我在python脚本(子进程)中执行grep语句,并希望确保得到的字节为UTF-8。
示例:
grep -P "ÄA" -m -1 file.txt我不知道文件的输入编码.
发布于 2017-04-07 12:27:48
Grep遵循UNIX哲学,也就是说,它只做一件事,并且做得很好。文件编码不是这一件事的一部分。
这就是其他工具的用途。还有一种很好的字符解码和编码工具,叫做iconv。使用它可以将输入文件的编码更改为UTF-8。
这确实要求您知道输入文件的编码。如果您不知道,您必须根据对输入文件的启发式分析来猜测(很难确定,如果使用了错误的编解码器,通常需要一个人来验证结果)。也有一个工具,叫做enca。这个工具也可以在猜测之后进行转换。它通常是一个单独的安装(它不是常见的默认POSIX工具集的一部分)。有关更多选项,请参见“超级用户”上的如何自动检测文本文件编码?。
但是请注意,考虑到编解码器猜测工具需要使用统计分析进行猜测,最好是在输入文件上进行猜测,而不是对grep的输出进行猜测。
当然,这些都与Python无关。但是,如果您想用Python进行编码检测,那么您将需要查看图书馆。
https://stackoverflow.com/questions/43277993
复制相似问题