【发布时间】:2015-11-06 01:42:35
【问题描述】:
我有一个包含非 ASCII 字符的文本文件。
我无法检测到file 或enca 的编码。
file non_ascii.txt
non_ascii.txt: Non-ISO extended-ASCII text
enca non_ascii.txt
Unrecognized encoding
但是我可以在Windows Notepad++中正常打开
编辑:上面的表述导致了误解。非常遗憾。 事实上,我是从原始文件中挑选了一些部分并将它们放入新的文本文件中,然后在记事本++中打开。
这两个部分如下所示。 notepad++ 以两种不同的方式对它们进行解码。
问题:
- 如何检测linux下的文件编码?
- 如何恢复
<F1><EE><E9><E4><FF>所代表的字符? 即使“сойдя”被编码为<F1><EE><E9><E4><FF>,我也无法通过“grep 'сойдя' win.txt”获得结果?
文件内容切片如下:
less non_ascii.txt
"non_ascii.txt" may be a binary file. See it anyway?
<F1><EE><E9><E4><FF>
<F2><F0><E0><EA><F2><EE><E2><E0><F2><FC><F1><FF>
<D0><F2><E9><E4><D7><E9><E7><E1><EC><E1><F3><F8>
<D1><E5><EA><F3><ED><E4>
<F0><E0><E7><E3><F0><F3><E7><EA><E8>
<EF><EE><E4><F1><F2><E0><E2><EB><FF><F2><FC>
<F0><E0><E7><E3><F0><F3><E7><EA><E5>
<F1><EE><E9><E4><F3>
<F0><E0><E7><E3><F0><F3><E7><EA><E0>
<F1><EE><E2><EB><E0><E4><E0><EB><E8>
<C1><D7><E9><E1><F0><EF><FE><F4><E1>
<CB><C1><D3><D3><C9><D4><C5><D2><C9><D4>
<F1><EE><E2><EB><E0><E4><E0><EB><EE>
<F1><EE><E9><E4><E8>
<F1><EE><E2><EB><E0><E4><E0><EB><E0>
【问题讨论】:
-
notepad++认为编码是什么?它应该在状态栏中的某处显示。 -
我从文件中得到 2 个 sn-ps。他们正在显示“Windows-1251”和“ANSI”。文件的某些部分中可能包含其他编码。那么有没有办法将混合编码的内容转换成 UTF-8 呢?
-
您的文件包含以不同方式编码的部分?
-
我从各种来源获得了这个文件内容。通过python脚本从多个文件中读取行,最后写入一个文件。
-
您不能将不同编码的文件连接起来,然后机械地将产生的混乱转换成有意义的东西。