我有一个包含字节序列c3 82 c2 bf的文本数据源。在上下文中,我认为它应该是一个大写的希腊Phi符号(Φ)。什么字符编码是c3 82 c2 bf?
无论如何,我不知道什么编码正在使用;我正在编写一个Python脚本来处理这些数据到需要Unicode的数据库中,并且它会在这个特定的数据序列上抛出一个异常。
有关如何处理它的任何建议?
我有一个包含字节序列c3 82 c2 bf的文本数据源。在上下文中,我认为它应该是一个大写的希腊Phi符号(Φ)。什么字符编码是c3 82 c2 bf?
无论如何,我不知道什么编码正在使用;我正在编写一个Python脚本来处理这些数据到需要Unicode的数据库中,并且它会在这个特定的数据序列上抛出一个异常。
有关如何处理它的任何建议?
解释为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,这与实际数据并不相似。有关数据来源的信息可能有助于猜测可能发生的转码。
它看起来像一个双重编码的U + 00BF,倒转的问题标记。 – 2012-07-18 17:32:37
@凯斯汤普森,没错!如果您有U + 00BF并且您使用UTF-8对其进行编码,则会得到字节C2 BF。如果您错误地将这些字节解释为U + 00C2和U + 00BF和UTF-8对它们进行编码,则会得到C3 82 C2 BF,如同在实际数据中一样。 – 2012-07-18 17:36:00
“¿”的来源仍然是一个问题。我通常会认为它是另一个错误转换的结果(可以推测为8位编码),但我无法想象它会是什么。 – 2012-07-18 17:41:23
它可能是从Ñ
字符的双重转换。
Ñ
字符UTF-8是:0xc391
。
如果试图从在UTF-8已经编码LATIN-1到UTF-8的Ñ
字符转换,你会得到:0xc382c2bf
。
为什么?
0xc382
是UTF-8翻译从LATIN-10xc3
字符Ã
(A与波浪线)0xc2bf
是¿
性格是你得到什么,当你不能从转换角色LATIN-1(0x91
是无效字符LATIN-1感谢但与Ñ无关,这是一个工程文件,其中Φ是有道理的。 – 2013-02-08 20:22:03
最有可能的是,'(带波浪号的A)+(上升?)'是_any_无意双重转换的结果。因此,没有办法扭转回到原来的角色。 – ashnazg 2016-12-21 20:19:05
FWIW,我以
结尾为c3 82 c2 bf
。我没有深入了解这些转换,因为我能够简单地将这部分代码扔掉。只需说
是在一个由wordpress(php)插件处理的html电子邮件模板中。
你能发表更多用魔法编码编码的样本数据吗?是什么让你认为这是一封信? – vcsjones 2012-07-18 16:54:31
在上下文中的“磁通\ XC3 \ X82 \ XC2 \ XBF 发”,这大概应该是Φ 发 – 2012-07-18 16:56:08
这是唯一的故障数据,到目前为止,所以我只能有一个去。 – 2012-07-18 16:57:20