2012-05-28 72 views
0

我有一个文件。我不知道它是如何处理的。这可能是一个双重编码。我发现有关解决几乎是我的问题双编码此链接:奇怪的编码替换

http://www.spamusers.com/encoding.htm

它具有所有双重编码换人做,如:

À À 
à Á 
  

Unfortnately我还有一些奇怪的字符,如:

ú 
ç 
ö 

你对如何清理这些奇怪的字符有想法吗?对于那些我知道我刚刚创建了bash脚本的人,我刚刚替换了他们。但我不知道如何认识其他人。我在Linux上运行,所以如果你有一些神奇的命令,我希望这样。

+0

它看起来像日本的SHIFT-JIS。虽然可能是错的。 – nhahtdh

+0

对虐待编码没有魔法命令。如果您知道*数据如何被错误解释和处理不当,则可能能够将这些确切的步骤撤回,以获取原始数据,除非它已被替换。你确定*你不是不正确地处理数据? – deceze

+0

它应该是意大利语,但我不知道。 – dierre

回答

0

链接到的“双编码替换”页面似乎包含用于修复已被双重UTF-8编码的字符数据的映射。因此,适当的修复程序将会颠倒这种映射,并查看结果是否有意义。例如,如果您将带有重音符号的A,U + 00C0和UTF-8编码为A,则会得到字节C3 A0。如果这些被错误地理解为单字节编码(例如,根据windows-1252),则会得到字符U + 00C3 U + 00A0(字母Ã和无间隔空格)。如果这些是UTF-8编码,则前者为C3 83,后者为C2 80。如果这些字节依次按照Windows-1252进行解释,则会得到与页面上一样的字符。

但你实际上并没有“À”,是吗?你有一些数字数据,字节,如果按照windows-1252解释,则以这种方式显示。但那将是一个错误的解释。

您应该首先读取UTF-8编码的数据,将其解码为字符,检查所有代码是否小于100十六进制(如果不是,则还有另一个错误),然后再次解码UTF-9。