Linux 编码问题?

Linux 编码问题?,linux,bash,Linux,Bash,我使用txt文件,最近在其中一些文件中发现了以下字符: 这些角色可能是什么?错误的字符编码?我只想使用普通的UTF-8 TXT文件,但使用时: 还是一样。 当我在gedit中打开文件时,复制并粘贴到另一个txt文件中,那么在pastebin中就没有类似的字符了。所以gedit可以解决这个问题,它可以很好地编码TXT文件。但是有太多的txt文件 为什么文本文件中有类字符?它们可以转换成普通字符吗?当我用vim打开文件时,我看不到例如:theÃŒchar,只有在我使用它们(例如:awk等)之后,

我使用txt文件,最近在其中一些文件中发现了以下字符: 这些角色可能是什么?错误的字符编码?我只想使用普通的UTF-8 TXT文件,但使用时:

还是一样。 当我在gedit中打开文件时,复制并粘贴到另一个txt文件中,那么在pastebin中就没有类似的字符了。所以gedit可以解决这个问题,它可以很好地编码TXT文件。但是有太多的txt文件


为什么文本文件中有类字符?它们可以转换成普通字符吗?当我用vim打开文件时,我看不到例如:theÃŒchar,只有在我使用它们(例如:awk等)之后,如果您发布文件的实际二进制内容,也许可以使用od-t x1的输出,这会有所帮助。pastebin以HTML的形式返回:

ÃŒ à Ã)

第一行对应于U+00C3 U+0152。最后一行对应于U+00C3 U+00A9,这是UTF\xc3\xa9中的字符串\ux00e9,UTF-8字节重新解释为拉丁语-1。

来自man iconv:

iconv程序将文本从 一种编码转换为另一种编码。更多 确切地说,它是从 为-f选项指定的编码 为-t选项指定的编码。 这两种编码都默认为 当前区域设置的编码

因为您没有指定-f选项,所以它假定文件是使用当前语言环境的编码(可能是UTF-8)编码的,而这显然不是真的。您的文本编辑器gedit、vim执行一些编码检测-您可以检查它们检测到的编码我不知道如何-我不使用它们中的任何一个并使用as-f iconv选项,或者使用这些文本编辑器中的一个以您所需的编码保存打开的文件

您还可以使用一些工具进行编码检测,如:

…解决了

如何:

我只需右键单击包含TXT文件的文件夹,然后将它们粘贴到另一个文件夹..:哦,还有普雷斯托,再也没有丑陋的角色了

iconv -t UTF-8 input.txt > output.txt
$ python -c "import chardet as c; print c.detect(open('file.txt').read(4096))"
{'confidence': 0.7331842298102511, 'encoding': 'ISO-8859-2'}