To fully understand encoding and decoding strings, I recommend the following resources:
- “The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)” by Joel on Software
- “Characters, Symbols and the Unicode Miracle” video by Computerphile
This answer on StackOverflow explains encoding and decoding in Python very well.