什么字符编码是c3 82 c2 bf?

时间:2012-07-18 16:45:32

标签: unicode encoding

我有一个文本数据源,包括字节序列c3 82 c2 bf。在上下文中,我认为它应该是首都希腊披披符号(Φ)。

无论如何我无法弄清楚正在使用什么编码;我正在编写一个Python脚本来将这些数据处理成一个需要Unicode的数据库,它会在这个特定的数据序列上引发异常。

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

5 个答案:

答案 0 :(得分:18)

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

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

答案 1 :(得分:10)

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

UTF-8 中的

Ñ字符为:0xc391

如果您尝试将 LATIN-1 转换为 UTF-8 ,则已在 UTF-8中编码的Ñ字符,你会得到:0xc382c2bf

为什么?

  1. 0xc382来自 LATIN-1 0xc3字符Ã UTF-8 翻译(带代字号的A)
  2. 0xc2bf¿字符,这是您无法转换 LATIN-1 中的字符时所获得的字符(0x91是一个无效字符的 LATIN-1

答案 2 :(得分:3)

FWIW,我最终得到了来自c3 82 c2 bf的{​​{1}}。我没有深入研究转换因为我能够简单地抛弃那部分代码。我只想说 在一个由wordpress(php)插件处理的html电子邮件模板中。

答案 3 :(得分:0)

我不知道原因。但是也许有一个场景。

二进制x0xx转换为0xC2 x0xx

二进制x1xx转换为0xC3 x0xx

因此添加了很多c2和c3。

这发生在哪里?发送url查询字符串中的非ascii进行ajax调用,Flask服务器将执行此操作。

答案 4 :(得分:-1)

在使用$ str = mb_convert_encoding($ content,“ UTF-8”,“ UTF-16LE”)转换为utf-8后,我已经从外部utf-16文档中收到了此字符\ xc3 \ x82。 (PHP)

原始序列为0xA0 0x00,转换器将其转换为NBSP的含义..它是货币编号中千位分隔符的字符。 nbsp是\ xc2 \ xa0,所以现在我可以删除成千上万个

$price = str_replace(["\xc2\xa0","\xc3\x82"], '', $price);