我對Python 3如何處理unicode多字節字符有點困惑。下面是用表情符號的例子:在Python 3中使用Unicode多字節字符選擇子字符串
In [1]: print('☺️')
☺️
In [2]: print(len('☺️'))
2
In [3]: print('☺️'[0])
☺
In [4]: print('☺️'[1])
️
In [5]: print(len(''))
4
由於我工作的一個小愛好項目涉及使用表情符號,這會導致對我的某些問題,因爲我寧願對付表情符號,單個字符的字符串,而不是治療他們像Python 3似乎做的那樣是多字符字符串。爲什麼Python 3不會將它識別爲單個字符,並且我如何以我喜歡的方式去處理和使用表情符號?
如果這對我的終端或REPL來說是一個問題,我使用帶iPython 5.1.0的macOS Sierra終端。
☺️使用UTF-16方案由* 2 *字節表示。 – Maroun
@MarounMaroun當然,但它仍然是一個單一的字符? UTF-(8 | 16)支持多字節字符。 –
@MarounMaroun這是UTF-16中的四個字節。 –