Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 24, 2009 13:47:10

Savyur
От:
Зарегистрирован: 2009-11-24
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Почему в консоли вместо русского текста выдается шестнадцатеричный код

Пишу в консоли python 2.6:

>>>s = 'банан-banana'
>>>print s
банан-banana
>>>s
'\xa1\xa0\xad\xa0\xad\x-banana'
Почему русские символы заменяются байт-кодом?
Какие нужно выполнить настройки, чтобы вместо байт-кода был родной русский?



Офлайн

#2 Ноя. 24, 2009 14:45:51

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Почему в консоли вместо русского текста выдается шестнадцатеричный код

пользуемся поиском, хватит задавать одни и те же вопросы… Уважаемая команда сайта, может быть состряпать FAQ?



Офлайн

#3 Ноя. 24, 2009 14:55:41

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Почему в консоли вместо русского текста выдается шестнадцатеричный код

А я, честно говоря, просто не могу представить себе консоль, которая не может отобразить строку, набранную в ней же :)
ЗЫ. если речь идет о простой строке, а не о списке, словаре и т.д



Отредактировано (Ноя. 24, 2009 15:03:01)

Офлайн

#4 Ноя. 24, 2009 15:23:54

Savyur
От:
Зарегистрирован: 2009-11-24
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Почему в консоли вместо русского текста выдается шестнадцатеричный код

igor.kaist
пользуемся поиском, хватит задавать одни и те же вопросы… Уважаемая команда сайта, может быть состряпать FAQ?
Такую реакцию предполагал.
Я внимательно прочитал все подходящие сообщения форума, но увы :( так и не нашел ответа.
Большинство вопросов относится к кодировкам внутри модулей, а не к консоли.
А вот, что необходимо именно предварительно проделать, что бы указанный мной текст, вводимый в консоли, давал ожидаемый результат???



Офлайн

#5 Ноя. 24, 2009 15:58:44

Viper
От:
Зарегистрирован: 2006-11-08
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

Почему в консоли вместо русского текста выдается шестнадцатеричный код

Savyur
>>>s
в этом случае используется repr.



Офлайн

#6 Ноя. 24, 2009 16:31:04

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Почему в консоли вместо русского текста выдается шестнадцатеричный код

Savyur
А вот, что необходимо именно предварительно проделать, что бы указанный мной текст, вводимый в консоли, давал ожидаемый результат???
А кто вам сказал, что ожидаемый вами результат - правильный результат?

В случае print над строкой делается str, а без него – repr. repr выводит внутреннее представление строки – байты.



Офлайн

#7 Ноя. 24, 2009 21:31:39

Savyur
От:
Зарегистрирован: 2009-11-24
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Почему в консоли вместо русского текста выдается шестнадцатеричный код

Daevaorn
Savyur
А вот, что необходимо именно предварительно проделать, что бы указанный мной текст, вводимый в консоли, давал ожидаемый результат???
А кто вам сказал, что ожидаемый вами результат - правильный результат?

В случае print над строкой делается str, а без него – repr. repr выводит внутренее представление строки – байты.
Пусть так, тогда почему “внутренее представление строки” выводится только для русского текста, а для английского не выводится?



Отредактировано (Ноя. 24, 2009 21:32:24)

Офлайн

#8 Ноя. 24, 2009 21:34:40

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Почему в консоли вместо русского текста выдается шестнадцатеричный код

Потому что для латиницы он совпадает.

Офлайн

#9 Ноя. 24, 2009 21:57:20

Savyur
От:
Зарегистрирован: 2009-11-24
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Почему в консоли вместо русского текста выдается шестнадцатеричный код

Тогда я не понимаю следующего.
Пусть

>>>a=['АБВ','ГДЕ']
Почему:
>>>print a[0]
>>>АБВ
А вот
>>>print a
>>>['\x... и т.д.
Т.е. в первом случае выводится текст первого элемента списка
Во втором, почему то, нельзя взять и выдать тоже самое для каждого из его элементов,
а выдается внутреннее представление?



Офлайн

#10 Ноя. 24, 2009 22:03:49

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Почему в консоли вместо русского текста выдается шестнадцатеричный код

Вам же сказали - в первом выводится то, что возвращает str, а во втором - repr.
Прочитайте же, наконец, что это такое и перестаньте задать один и тот же вопрос.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version