Unicode UTF-8 Представленные символы
0x00000000 — 0x0000007F 0xxxxxxx ASCII, в том числе латинский алфавит, простейшие знаки препинания и арабские цифры
0x00000080 — 0x000007FF 110xxxxx 10xxxxxx кириллица, расширенная латиница, арабский, армянский, греческий, еврейский и коптский алфавит; сирийское письмо, тана, нко; МФА; некоторые знаки препинания
0x00000800 — 0x0000FFFF 1110xxxx 10xxxxxx 10xxxxxx все другие современные формы письменности, в том числе грузинский алфавит, индийское, китайское, корейское и японское письмо; сложные знаки препинания; математические и другие специальные символы
0x00010000 — 0x001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx музыкальные символы, редкие китайские иероглифы, вымершие формы письменности
с хексовыми значениями понятно:
0 — 127 занимает один байт
128 — 2047 два байта
2048 — 65535 три байта
65535 — 2097151 четыре байта
это номера символов, достать их можно так:
>>> unichr(2047)
u'\u07ff'
>>> print unichr(2047)
߿
>>> len(unichr(2047).encode('utf8'))
2
11000000 10000000 11010100 10001000 11000110 10000001 11000111 10110000 11001001 10111111
я знаю что это бинарные значения символов utf8, но не знаю как их конвертировать к нормальному виду
может кто нибудь сталкивался с подобной ситуацией?