There's a reason they're called "encodings"
stackoverflow.com
stackoverflow.com
Might be useful to someone...
1. http://www.randomtechnicalstuff.blogspot.com.au/2009/05/unic...
The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets
I personally think the first and the only mandatory thing one should read about Unicode is the Standard itself.
Don't read "UTF-8 is cool!!!" blog posts.
Don't read RFC 3629.
Read original.
http://www.unicode.org/versions/Unicode6.1.0/UnicodeStandard...
It is nicely written, it has normative definitions (code points, glyphs et al).
It describes BOM (which Joel On Software apparently has failed to understand).
It describes UTF-8 error handling and normalization and many necessarily non-trivial things.
It doesn't really make sense to "decode" a proper string type. Ideally the language should never reveal how it represents strings internally in memory, so you can think of strings as a sequence of abstract unicode codepoints with no specific encoding at all. And Python 3 strings are like that.