В моей программе я получаю коды символов shift-jis как целые числа Python, которые мне нужно преобразовать в соответствующие коды символов utf8 (которые также должны быть в целых числах). Как я могу это сделать? Для ASCII у вас есть полезные функции ord () / chr (), которые позволяют конвертировать целое число в строку ASCII, которую вы можете легко преобразовать в Unicode позже. Ничего подобного для других кодировок найти не могу.
Используя Python 2.
РЕДАКТИРОВАТЬ: окончательный код. Спасибо всем:
def shift_jis2unicode(charcode): # charcode is an integer
if charcode <= 0xFF:
string = chr(charcode)
else:
string = chr(charcode >> 8) + chr(charcode & 0xFF)
return ord(string.decode('shift-jis'))
print shift_jis2unicode(8140)
str
работает как байты и имеет псевдонимbytes
в 2.6 и 2.7. - person Thomas K   schedule 24.02.2012ord()
даст вам кодовые точки Unicode, а не utf-8. Это может быть то, что вы хотите, но это совсем разные вещи. - person Thomas K   schedule 24.02.2012string
в качестве имени переменной. - person Mark Ransom   schedule 25.02.2012