首页新闻找找看学习计划

如何使用命令行工具识别文件编码?

1
悬赏园豆:200 [待解决问题]

现在有一个文件,编码格式未知,使用基于 libmagic 的工具检测出来的编码结果都是 iso-8859-1,但是通过 iconv 将这个文件从 iso-8859-1 转换到 utf-8 后得到的结果都包含乱码。

如果使用图形化的编辑器编辑这个文件的话,显示的文件编码为 gb18030,而且显示结果也是正常没有乱码的。

那么怎么样使用命令行工具识别这个文件的编码呢?

问题补充:

使用 enca 检测文件编码:

$ enca -L chinese Test.cs

输出如下:

Unrecognized encoding

使用 uchardet 检测:

$ uchardet Test.cs

输出如下:

WINDOWS-1252
不如隐茶去的主页 不如隐茶去 | 菜鸟二级 | 园豆:497
提问于:2019-06-12 15:13
< >
分享
所有回答(3)
0

Linux 下用 file -i file_name

Result: log.txt: text/plain; charset=us-ascii

BUTTERAPPLE | 园豆:2922 (老鸟四级) | 2019-06-12 15:29

file 是基于 libmagic 实现的,无法识别我的这个文件。

支持(0) 反对(0) 不如隐茶去 | 园豆:497 (菜鸟二级) | 2019-06-12 15:30
0

试试 uchardet ,https://github.com/BYVoid/uchardet

# apt-get install uchardet libuchardet-dev
# uchardet RedisClient.cs 
UTF-8
dudu | 园豆:41412 (高人七级) | 2019-06-12 15:36

uchardet 会把 GB18030 识别为 WINDOWS-1252 ,这是 uchardet 的一个bug ,详见 https://github.com/BYVoid/uchardet/issues/23

支持(0) 反对(0) dudu | 园豆:41412 (高人七级) | 2019-06-12 15:45
0
ycyzharry | 园豆:17720 (专家六级) | 2019-06-13 00:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册