2012-07-18 15 views
8

我有一个包含字节序列c3 82 c2 bf的文本数据源。在上下文中,我认为它应该是一个大写的希腊Phi符号(Φ)。什么字符编码是c3 82 c2 bf?

无论如何,我不知道什么编码正在使用;我正在编写一个Python脚本来处理这些数据到需要Unicode的数据库中,并且它会在这个特定的数据序列上抛出一个异常。

有关如何处理它的任何建议?

+1

你能发表更多用魔法编码编码的样本数据吗?是什么让你认为这是一封信? – vcsjones 2012-07-18 16:54:31

+0

在上下文中的“磁通\ XC3 \ X82 \ XC2 \ XBF ”,这大概应该是Φ 2012-07-18 16:56:08

+0

这是唯一的故障数据,到目前为止,所以我只能有一个去。 – 2012-07-18 16:57:20

回答

17

解释为UTF-8,c3 82是“U + 00C2”,c2 bf是“¿”U + 00BF,这没什么意义,但它在技术上是有效的UTF-8数据,所以它不应该被报告为字符级数据错误。解释为UTF-16,它是韩文的音节,可能是CJK的表意文字,取决于字节顺序,但仍然是正式有效的数据,但很可能不是这个意思。

这听起来像是双重转换的结果,但很难做出有根据的猜测。如果它代表Φ,那么UTF-16格式为03 A6或A6 03,而UTF-8格式为CE A6,这与实际数据并不相似。有关数据来源的信息可能有助于猜测可能发生的转码。

+1

它看起来像一个双重编码的U + 00BF,倒转的问题标记。 – 2012-07-18 17:32:37

+2

@凯斯汤普森,没错!如果您有U + 00BF并且您使用UTF-8对其进行编码,则会得到字节C2 BF。如果您错误地将这些字节解释为U + 00C2和U + 00BF和UTF-8对它们进行编码,则会得到C3 82 C2 BF,如同在实际数据中一样。 – 2012-07-18 17:36:00

+0

“¿”的来源仍然是一个问题。我通常会认为它是另一个错误转换的结果(可以推测为8位编码),但我无法想象它会是什么。 – 2012-07-18 17:41:23

10

它可能是从Ñ字符的双重转换。

Ñ字符UTF-8是:0xc391

如果试图从在UTF-8已经编码LATIN-1UTF-8Ñ字符转换,你会得到:0xc382c2bf

为什么?

  1. 0xc382UTF-8翻译从LATIN-10xc3字符Ã(A与波浪线)
  2. 0xc2bf¿性格是你得到什么,当你不能从转换角色LATIN-10x91是无效字符LATIN-1
+0

感谢但与Ñ无关,这是一个工程文件,其中Φ是有道理的。 – 2013-02-08 20:22:03

+0

最有可能的是,'(带波浪号的A)+(上升?)'是_any_无意双重转换的结果。因此,没有办法扭转回到原来的角色。 – ashnazg 2016-12-21 20:19:05

2

FWIW,我以 结尾为c3 82 c2 bf。我没有深入了解这些转换,因为我能够简单地将这部分代码扔掉。只需说 是在一个由wordpress(php)插件处理的html电子邮件模板中。

相关问题