Python: el códec 'ascii' no puede decodificar el byte

Estoy realmente confundido. Traté de codificar pero el error decíacan't decode....

>>> "你好".encode("utf8")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)

Sé cómo evitar el error con el prefijo "u" en la cadena. Me pregunto por qué el error es "no se puede decodificar" cuando se llamó a la codificación. ¿Qué está haciendo Python debajo del capó?