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はこれを単一の文字として認識しないのですか?好きなやり方で、emojisについてどうやって作業しますか?
これは私の端末やREPLに問題がある場合は、iPython 5.1.0でmacOS Sierra端末を使用しています。
☺️は、UTF-16方式を使用して* 2バイトで表されます。 – Maroun
@MarounMaroun確かに、それはまだ独身者の権利ですか? UTF-(8 | 16)はマルチバイト文字をサポートします。 –
@MarounMarounそれはUTF-16で4バイトです。 –