The question's subject line might be a bit misleading: Python 2's raw_input()
normally returns a byte string, NOT a Unicode string.
However, it could return a Unicode string if it or sys.stdin
has been altered or replaced (by an application, or as part of an alternative implementation of Python).
Therefore, I believe @ByteCommander is on the right track with his comment:
Maybe this has something to do with the console it's running in?
The Python used by Codecademy is ostensibly 2.7, but (a) it was implemented by compiling the Python interpreter to JavaScript using Emscripten and (b) it's running in the browser; so between those factors, there could very well be some string encoding and decoding injected by Codecademy that isn't present in plain-vanilla CPython.
Note: I have not used Codecademy myself nor do I have any inside knowledge of its inner workings.