I am a bit confused about how Python 3 handles unicode multibyte characters. Here's an example with an emoji:

In [1]: print('☺️') ☺️ In [2]: print(len('☺️')) 2 In [3]: print('☺️'[0]) ☺ In [4]: print('☺️'[1]) ️ In [5]: print(len('👩🏾‍💼')) 4

Since I'm working on a small hobby project dealing with emojis, this causes certain problems for me since I would prefer to deal with emojis as single character strings, rather than treating them as multicharacter strings as Python 3 seems to do. Why doesn't Python 3 recognize this as a single character, and how do I go about and work with emojis in the manner I would prefer?

If this is rather a problem with my terminal or REPL, I'm using the macOS Sierra terminal with iPython 5.1.0.