幾個基本的問題說我這樣做:約編碼,Unicode和標準輸出
>>> 'é' #1
'\xc3\xa9'
>>> u'é' #2
u'\xe9'
>>> print u'é' #3
é
這是我的理解:
- 當我粘貼
'é'
到我的Python會話,byteArray包含2 字節以某種方式降落到stdin
,其中Python 讀取。相同的字節發送到stdout
並以十六進制形式顯示。 - 這次Python必須對字節進行解碼:它讀取
sys.stdin.encoding
,找到utf-8
,並將2個字節解碼爲unicode。然後我不確定會發生什麼。我們可以發送一個unicode字符串到stdout
嗎?或者,也許Python採用unicode代碼點的十六進制表示,將其編碼爲utf-8
併發送至stdout
? - Python將2個字節解碼爲unicode。然後
print
再次編碼utf-8
並將結果發送到stdout
。
我的理解是否正確?