2011-01-08 172 views
0

我使用txt文件,最近我发现了例如在其中的一些这些字符:

http://pastebin.com/raw.php?i=Bdj6J3f4

可以将这些字符是什么呢?错误的字符编码?我只是想正常使用UTF-8 TXT文件,但是当我使用:

编码问题?

iconv -t UTF-8 input.txt > output.txt 


它仍然是相同的。

当我在gedit中打开文件时,将它们复制并粘贴到另一个txt文件中,然后在pastebin中没有任何字符。所以gedit可以解决这个问题,它很好地编码TXT文件。但是有太多的txt文件。

为什么http://pastebin.com/raw.php?i=Bdj6J3f4-chars在文本文件中?他们可以转换为“正常字符”?我看不到如:在“卓越学科领域”字符,当我打开用vim的文件,只在I“与他们的工作”(例如:AWK等)

回答

-1

..solved!

如何:

我正好点击包含TXT文件的文件夹,并将其粘贴到另一个文件夹..:O和presto..theres没有更多的丑陋字符..

0

如果您发布的实际二进制这将有助于你的文件的内容(也许通过使用od -t x1的输出)。 pastebin将其作为HTML返回:

"à Œ " "à " "à © "

第一行对应于U + 00C3 U + 0152。最后一行对应于U + 00C3 U + 00A9,它是UTF(“\ xc3 \ xa9”)中的字符串“\ ux00e9”,UTF-8字节重新解释为Latin-1。

0

man iconv

该程序的iconv将从 一个编码文本到其他编码方式。更确切地说,它将 编码转换为-f选项的编码为 ,编码是-t选项。 这两种编码默认 的当前语言环境的编码

因为你没有指定-f选项它假定该文件进行编码当前区域的编码(可能是UTF-8),这显然是不对。您的文本编辑器(gedit,vim)会执行一些编码检测 - 您可以检查它们检测到哪种编码(我不知道如何 - 我不使用它们中的任何一种)并将其用作-f iconv选项(或保存打开使用这些文本编辑器中的一种文件与您想要的编码)。

您也可以使用一些工具,像Python chardet module编码检测:

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