我跑python2.7.10與「UTF-8」編碼的Unicode顯示字節串僅適用於非ASCII
試圖總結我的身邊,爲什麼下列行爲被認爲是頭。 (當然有一個合理的解釋)
所以我定義了兩個unicode字符,只有第一個在ascii-set中,第二個在它外面。
>>> a=u'\u0041'
>>> b=u'\u1234'
>>> print a
A
>>> print b
ሴ
現在我編碼它看看相應的字節將是什麼。但只有後者給我的結果,我希望看到(字節)
>>> a.encode('utf-8')
'A'
>>> b.encode('utf-8')
'\xe1\x88\xb4'
也許,問題是我的期望,如果是這樣,你可以解釋其中的缺陷所在。 - 我的a,b是unicode(內部序號的十六進制值) - 打印這些時,解釋器打印出與每個unicode字節對應的實際字符。 - 當我編碼時,我認爲它會使用我提供的編碼方案(在本例中爲utf-8)轉換爲字節字符串。我期望看到一個字符串爲a.encode,就像我爲b.encode做的一樣。
我錯過了什麼?
總體意義。謝謝。有沒有一種方法可以像非打印的那樣爲ascii安全代碼點打印轉義序列\ xhh? – ajaysdesk
@ajaysdesk:你必須手動完成。例如,您可以使用'binascii.hexlify()'函數將所有字節轉換爲十六進制輸出(但不帶'\ x'前綴)。 –
謝謝。正是我想要的 – ajaysdesk