我有一個包含字節序列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