Как преобразовать русский символ в целое число

Я использую python для преобразования русского символа в стиль int. Я знаю, что значение int русского символа меньше 256. но я получаю значение выше 1000. как получить правильное значение? Моя кодировка проекта - ISO-8859-5. код:

#!/usr/bin/python
# -*- coding: iso-8859-5 -*-
rus_str = "бвгдеёжзийя"

for i in rus_str:
    print(ord(i))

Результат:

1073
1074
1075
1076
1077
1105
1078
1079
1080
1081
1103

person yangkunvanpersie    schedule 07.12.2019    source источник
comment
Python использует Unicode, а не ISO-8859-5, stackoverflow.com/questions/3547534/   -  person Renat    schedule 07.12.2019
comment
Есть ли особая причина, по которой вам нужно значение ISO-8859-5, или подойдет Unicode?   -  person Llamax    schedule 07.12.2019
comment
если я использую Unicode, будет ошибка сборки. если я использую Unicode, будет ошибка сборки. , строка 3 SyntaxError: код не-UTF-8, начинающийся с '\xd1' в файле D:/Python/Russian2Octal/env/Russian2Octal.py в строке 3, но кодировка не объявлена; подробности см. на python.org/dev/peps/pep-0263 Процесс завершен с код выхода 1   -  person yangkunvanpersie    schedule 09.12.2019


Ответы (1)


На самом деле, функция ord() возвращает строковое представление в Юникоде, где все русские символы имеют число в диапазоне от 1040 до 1103. Также есть число 1025 для "ё" и "Ё". Для вашей задачи вы можете закодировать строку, а затем получить код ASCII:

rus_str = "бвгдеёжзийя".encode('ISO-8859-5')

for i in rus_str:
    print(i)

Результат:

209
210
211
212
213
241
214
215
216
217
239
person Fearkin    schedule 07.12.2019
comment
благодарю вас . возьми! Функция ord() возвращает строковое представление в Юникоде, где все русские символы имеют число в диапазоне от 1040 до 1103 - person yangkunvanpersie; 09.12.2019