Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 2, 2016 11:21:04

megoloman
Зарегистрирован: 2015-10-26
Сообщения: 113
Репутация: +  0  -
Профиль   Отправить e-mail  

конфликт кодировки

Здравствуйте! Помогите пожалуйста со следующей проблемой. Вопрос из тестового задания.

В приведенном примере:

$cat test.py
# -*- coding: utf8 -*-

s = u"ы"
print "Hello, %s" %s

$python test.py > /dev/null
Traceback (most recent call last):
File "task1.py", line 5, in <module>
print "Hello, %s" %s
UnicodeEncodeError: 'ascii' codec can't encode character u'\u044b' in position 7: ordinal not in range(128)


Как исправить код test.py что-бы не было ошибки?

Офлайн

#2 Апрель 2, 2016 12:49:20

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

конфликт кодировки

# -*- coding: utf8 -*-
s = u"ы"
print u"Hello, %s" %s



Отредактировано doza_and (Апрель 2, 2016 12:49:29)

Офлайн

#3 Апрель 2, 2016 13:47:39

megoloman
Зарегистрирован: 2015-10-26
Сообщения: 113
Репутация: +  0  -
Профиль   Отправить e-mail  

конфликт кодировки

По-прежнему ошибка происходит

Офлайн

#4 Апрель 2, 2016 13:49:50

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2757
Репутация: +  184  -
Профиль   Отправить e-mail  

конфликт кодировки

Сам файл в utf8 сохранён?



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#5 Апрель 2, 2016 14:04:57

megoloman
Зарегистрирован: 2015-10-26
Сообщения: 113
Репутация: +  0  -
Профиль   Отправить e-mail  

конфликт кодировки

Да

Офлайн

#6 Апрель 2, 2016 16:42:43

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

конфликт кодировки

А почему ругается на 5 строку когда у вас их 4? А без dev null что будет?



Офлайн

#7 Апрель 2, 2016 17:00:48

megoloman
Зарегистрирован: 2015-10-26
Сообщения: 113
Репутация: +  0  -
Профиль   Отправить e-mail  

конфликт кодировки

последняя строка случайно сместилась на одну вверх когда на форум заливал, без dev null работает нормально, но нужно, чтобы именно с dev null отрабатывало

Офлайн

#8 Апрель 2, 2016 18:25:40

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

конфликт кодировки

Это надо наверное либо изменить настройки локали. Ваш dev null не может воспроизвести unicode либо перед печатью попробовать провести явную кодировку(encode()).



Офлайн

#9 Апрель 2, 2016 19:10:36

old_monty
Зарегистрирован: 2015-09-27
Сообщения: 238
Репутация: +  20  -
Профиль   Отправить e-mail  

конфликт кодировки

megoloman
Как исправить код test.py что-бы не было ошибки?
Попробуйте так:
# -*- coding: utf-8 -*-
s = u"ы".encode("utf-8")
print ("Hello, %s"  %s)
В этом случае у меня $python test.py выводит как и раньше, а $python test.py > /dev/null не ругается.

Офлайн

#10 Апрель 2, 2016 19:49:21

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

конфликт кодировки

john_16@linux-home:~> cat t.py
# -*- coding: utf-8 -*-
print u'Привет'
john_16@linux-home:~> python2 t.py 
Привет
john_16@linux-home:~> python2 t.py  > /dev/null
Traceback (most recent call last):
  File "t.py", line 3, in <module>
    print u'Привет'
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)
john_16@linux-home:~> export PYTHONIOENCODING=UTF8
john_16@linux-home:~> python2 t.py  > /dev/null



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version