Ошибка кодирования при переносе приложения django с python 2 на python 3 - PullRequest
0 голосов
/ 10 февраля 2020

Я мигрирую приложение django с python 2.7.15 на python 3.6.10. У меня есть код, подобный следующему:

re.compile(ur'({number}\d+)'.format(number=numeral_constant.NUMBER_REPLACE_TEXT),
                                        re.UNICODE) 

Это работает в Python 2, но чтобы заставить его работать в Python 3, я должен использовать r вместо ur , поскольку строки в Unicode по умолчанию в Python 3 и делают

re.compile(r'({number}\d+)'.format(number=numeral_constant.NUMBER_REPLACE_TEXT),
                                            re.UNICODE) 

Теперь это работает в Python 3, но прерывается в Python 2, и я получаю ошибку ' ascii 'code c не может кодировать символы в позиции 3-4: порядковый номер не в диапазоне (128) . Есть ли способ изменить код так, чтобы он работал как Python 2, так и Python 3?

Спасибо

...