【发布时间】:2016-04-21 21:03:26
【问题描述】:
我收到了一份由另一位用户处理过的 XLSX 文档,从不经意间的检查来看,它的编码似乎完全被破坏了。我使用 Excel 2011 打开 XLSX 文件并将文档保存为 Windows CSV 文件,这样我就可以通过它运行脚本并找出它是什么编码。然而,这样做,我只发现自己更加困惑。
0-127 的 ASCII 范围似乎都是正确且可读的。然后我编写了一个脚本来解析整个 CSV 文件,并且只输出具有字节 80 到 ff 的单元格。通过查看各种单元格并填写空白,我相信我找到了以下翻译 - 它们可能并非都是 100% 准确的:
-
e5 ca=> 空白 -
cc 5f=> ä 和 Bättner 一样 -
cc a4=> ç 和 Jean-François 一样 -
cc a6=> ö 和 Hölzlestr 一样 -
cc a8=> î 和 Jean-Benoît 一样 -
cc a9=> é 和 Dupré 一样 -
cc ac=> è 和 Hélène 一样 -
cc b1=> ñ 就像穆尼奥斯一样 -
cc c1=> á 在穆拉和查韦斯中 -
cc d9=> ß 和 Auerstraße 一样 -
cc e4=> É 就像 Émile
此外,前缀cc c4 e5 在数据中出现了多次,并且似乎映射到与cc 相同的事物——例如,cc c4 e5 c1 似乎映射到与@987654338 相同的字符(á) @。
我突然想到,这甚至可能并非都是相同的编码 - 此 XLSX 文档基于在线邮件列表中包含的数据,并且邮件列表的不同数据源可能具有不同的编码。 .问题。
编辑因此,其中一个解决方案是物有所值,其中许多字段似乎是 UTF-8 解释为 Windows-1252 编码为 MacRoman。我能够将 MacRoman 反转为 Windows-1252 并获得有效的 UTF-8 字节序列。但是,这并没有涵盖所有情况...它没有解释cc c4 e5 序列,并且我假设上表中的一种编码是脱基的——cc 5f 在反转时不会变成 ä .但是,我发现实际上有几种编码,例如cc 5f,我认为可能有一两个线索。这是我之前的策略无法解码的两个字节串...
4a 65 74 74 cc c4 e5 f8 cc e2 e5 c0 cc e2 e5 5f
48 cc 5f e5 5f e5 5f cc 5f e5 a6 e5 a8 65 72
5f 出现了很多...
【问题讨论】:
-
如果有不同的编码问题,它们会出现在源代码中。一个文档中不能有两种不同的编码。首先检查来源。 edit也许您可以在该文件的编辑副本上发布指向公共共享的链接。
-
一个文档不能有两种不同的编码,但可以有不同的不正确编码的数据 - 文件可能是 ISO8859-1,但您可能在一个文档上有错误编码的 UTF-8 数据行和错误编码...比如说...将 JIS 数据移到另一个中。
标签: excel text unicode encoding character-encoding