2012-07-18 34 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電子郵件模板中。

相關問題