Unicode字符串在Python的內存中如何字面表示?unicode如何在Python內部表示?
例如,我可以將'abc'
想象爲其在內存中的等效ASCII字節。整數可以被認爲是2的恭維表示。然而,u'\u2049'
,即使在UTF-8
中表示爲'\xe2\x81\x89'
- 3個字節長,我如何可視化文字u'\u2049'
代碼點在內存中?
是否有一種特定的方式存儲在內存中? Python 2和Python 3是否以不同的方式對待它?任何人都好奇
一些相關的問題:
1)How are these strings represented internally in Python interpreter ? I don't understand
2)What is internal representation of string in Python 3.x
要知道您是否有「窄」(UCS2)或「寬」(UCS4)構建,請檢查sys.maxunicode。 65535指窄,1114111指寬。 – 2014-09-27 21:33:48
我認爲在技術上,它是UTF-16或UTF-32,而不是UCS2或UCS4,因爲代理對在狹窄的版本中使用,因此它的UTF-16。 – 2014-09-27 21:36:03
@NedBatchelder:的確,不知道爲什麼文檔仍然堅持使用UCS。 – 2014-09-27 21:36:44