В Python u'\u03a9'
- это строка, состоящая из одного символа Unicode Ω
(U + 03A9). Внутреннее представление этой строки является деталью реализации, поэтому нет смысла спрашивать о задействованных байтах.
Одним из источников неоднозначности является строка типа 'é'
, которая может быть либо один символ U + 00E9 или двухсимвольная строка U + 0065 U + 0301.
>>> len(u'\u00e9'); print(u'\u00e9')
1
é
>>> len(u'\u0065\u0301'); print(u'\u0065\u0301')
2
é
Однако двухбайтовая последовательность '\xce\xa9'
может интерпретироваться как UTF-8кодирование U + 03A9.
>>> u'\u03a9'.encode('utf-8')
'\xce\xa9'
>>> '\xce\xa9'.decode('utf-8')
u'\u03a9'
В Python 3 это будет (с UTF-8 в качестве схемы кодирования по умолчанию)
>>> '\u03a9'.encode()
b'\xce\xa9'
>>> b'\xce\xa9'.decode()
'Ω'
Другие последовательности байтов могут быть декодированы в U+ 03A9:
>>> b'\xff\xfe\xa9\x03'.decode('utf16')
'Ω'
>>> b'\xff\xfe\x00\x00\xa9\x03\x00\x00'.decode('utf32')
'Ω'