dethain
@dethain
Верстальщик

Проблема с кодировкой символов, не могу выводить в консоль на русском, как быть?

На сервере есть файл hello.py:
# -*- encoding: utf-8 -*-
from __future__ import print_function

print("Привет мир!")

Ввожу в консоли:
python hello.py
и получаю ошибку:
File "hello.py", line 4, in
print("\u041f\u0440\u0438\u0432\u0435\u0442 \u043c\u0438\u0440!")
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)
Как вообще использовать кодировку utf-8 правильно?

Ubuntu 0.16.04, Python 3.5.2

P.S.
В терминале:
root@user2158127:/home/maksim/ftp/files# file -bi hello.py
text/plain; charset=utf-8
  • Вопрос задан
  • 491 просмотр
Решения вопроса 1
@cicwak
Если это сервер с Ubuntu Server 16, то она не поддерживает русский язык.
И питон > 3.5.3 придется ставить отдельно.
Можно попробовать исправить это, поставив расширения на язык.
По опыту, сам пробовал, забил, и взял сервер на 30 руб дороже с Ubuntu Server 20
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
# -*- encoding: utf-8 -*-
from __future__ import print_function

Python 3.5.2
Будущее уже наступило.... Можно этот заголовок уже не добавлять. Это было актуально во времена python 2.x

Просто сохраните файл скрипта в кодировке utf-8 - и пользуйтесь....
PS:
Проверил на 3.4.x в Ubuntu 14.04.6 LTS:
root@ubuntuServer:~# python3 --version
Python 3.4.3
root@ubuntuServer:~# cat /etc/issue
Ubuntu 14.04.6 LTS \n \l
root@ubuntuServer:~# python3 ./hello.py
Привет мир!
root@ubuntuServer:~# cat hello.py
print("Привет мир!")
root@ubuntuServer:~# file hello.py
hello.py: UTF-8 Unicode text


все работает
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы