Semanas atrás enquanto trabalhava no bot @Covid19AO_Stats bati-me com um problema relacionado com a forma como o Python processa texto.
O que me ajudou a perceber foi a apresentação abaixo.
Esta apresentação, por Ned Batchelder, foi a melhor até agora encontrei explicando os conceitos e a relação entre ASCII, Unicode, UTF-8, a necessidade de ambos e o processo de codificação, decodificação e representação de strings. Embora esteja virado para o Python, estou certo que seja útil para outras linguagens também.
Se ler não lhe agrada muito, a apresentação também está disponível no Youtube.