LINUX.ORG.RU

Python 3, UnicodeEncodeError, как исправить?

 , ,


0

2

Debian Wheezy

Python 3.2

Traceback (most recent call last): File "betfair.py", line 10, in <module>   print('\u041f\u0410\u0420\u0421\u0418\u0422\u0421\u042f ' + baseurl + parturl) UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-7: ordinal not in range(128)


Строка такая:

print('ПАРСИТСЯ ' + baseurl + parturl)


Почему так и как исправить?

На убунте 14.04 работает

★★★★★

Последнее исправление: Qwentor (всего исправлений: 3)

Ответ на: комментарий от yars068

Сделал

msg = 'ПАРСИТСЯ ' + baseurl + parturl
msg = msg.encode('utf-8')
print(msg)

Теперь мне выводит в виде кодов юникода, а надо по-русски( Я с мобилки - все не очень удобно делать(
Что я делаю не так и почему на убунте работает?

Qwentor ★★★★★
() автор топика

Недавно наткнулся на такое. Решение — либо костылять свой print через sys.stdout.buffer, либо поправить локаль в переменной окружения на UTF-8. Например LC_ALL='ru_RU.UTF-8',LANG='ru_RU.UTF-8'.

PolarFox ★★★★★
()
Ответ на: комментарий от Qwentor

ru_RU.UTF-8

Не обязательно. Любая юникодная сойдёт. Или любая с русскими символами.

PolarFox ★★★★★
()
Ответ на: комментарий от Qwentor

Мне нужно установить ru_RU.UTF-8 по-умолчанию? Установил как вторую - без толку

Любую .UTF-8. Если ты почему-то не хочешь устанавливать UTF-8-локаль по умолчанию, то запускай скрипт как LANG=ru_RU.UTF betfair.py (или любую другую UTF-8-локаль).

proud_anon ★★★★★
()
Ответ на: комментарий от proud_anon

Йоу, спасибище! Помогло!
Нажал бы плюсик, если б было)

Qwentor ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.