Получение символов, отличных от ASCII, для работы в функциях Ren’Py

#python #unicode #utf-8 #renpy

#python #юникод #utf-8 #renpy

Вопрос:

Я перевожу игру Ren’Py, которая включает переопределение функции, которая преобразует числа в записанные слова на определенном языке. Затем эти строки обрабатываются и вставляются в текст игры основным кодом игры (который я не могу изменить).

Моя проблема в том, что когда я возвращаю строки, содержащие символы, отличные от ascii, такие как ö или ü , игра выдает исключение, когда доходит до этой точки.

 UnicodeDecodeError: 'utf8' codec can't decode bytes in position 2-4: unexpected end of data
  

Использование кодов символов, подобных uC3B6 таким, не создает исключений, но в итоге я получаю поле-заполнитель вместо нужного мне символа.

Есть ли какой-либо способ заставить функцию правильно возвращать эти символы, не имея доступа к оставшемуся коду?

Комментарии:

1. Всегда публикуйте полную обратную трассировку. Какую версию python вы используете? Вы передаете строки Unicode или строки bytes? Каков результат print(repr(mystring)) ?

2. Извините, я должен был упомянуть, что у меня очень мало опыта работы с Python (я даже не знал о существовании разных типов строк)… и, пытаясь разобраться во всем этом, мне просто удалось найти решение самостоятельно. ^^ ‘

Ответ №1:

Оказывается, я использовал неправильный escape-символ и неправильные шестнадцатеричные коды. И мне пришлось использовать строки Unicode. u'xF6' и u'xFC' отлично работает для двух символов, которые я пытался получить.