尝试文件实用程序。您可以通过使用带有选项的管道到实用程序将任何字符串作为文件参数传递给文件(许多命令使用连字符 (-) 代替文件名作为参数,以指示何时输入应来自 stdin 而不是文件):echo-
:~ $ echo "test" | file -i -
/dev/stdin: text/plain; charset=us-ascii
:~ $ echo "????" | file -i -
/dev/stdin: text/plain; charset=utf-8
Run Code Online (Sandbox Code Playgroud)
使用管道到 sed:
:~ $ echo "????" | file -i - | sed 's/.*charset=\(.*\)/\1/'
utf-8
Run Code Online (Sandbox Code Playgroud)
或 awk(当然你可以混合使用):
:~ $ echo "????" | file -i - | awk '{ print $3 }'
charset=utf-8
Run Code Online (Sandbox Code Playgroud)
你也可以使用 python chardet模块。Chardet 带有一个命令行脚本,用于报告一个或多个文件的编码。只需安装它:
pip install chardet
Run Code Online (Sandbox Code Playgroud)
并与来自 echo 的管道一起使用:
:~ $ echo "????" | chardetect
<stdin>: utf-8 with confidence 0.938125
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2034 次 |
| 最近记录: |