В моей программе я получаю коды символов shift-jis как целые числа Python, которые мне нужно преобразовать в соответствующие коды символов utf8 (которые также должны быть в целых числах). Как я могу это сделать? Для ASCII у вас есть полезные функции ord()/chr(), которые позволяют вам преобразовать целое число в строку ASCII, которую вы можете легко преобразовать в unicode позже. Я не могу найти ничего подобного для других кодировок.получить код символа utf-8 с учетом кода символа shift-jis?
Использование Python 2.
EDIT: окончательный код. Спасибо всем:
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)
Это необычно, чтобы получить их в виде целых чисел, а не байт - это то, что что-то ты можешь измениться? –
Извините, я не могу. BTW, я думаю, что «байты» - это что-то новое в Python 3, я использую 2. –
Python 2 'str' работает как байты, и имеет псевдоним' bytes' в 2.6 и 2.7. –