Найти - Пользователи
Полная версия: Почему в консоли вместо русского текста выдается шестнадцатеричный код
Начало » Python для новичков » Почему в консоли вместо русского текста выдается шестнадцатеричный код
1 2
Savyur
Пишу в консоли python 2.6:
>>>s = 'банан-banana'
>>>print s
банан-banana
>>>s
'\xa1\xa0\xad\xa0\xad\x-banana'
Почему русские символы заменяются байт-кодом?
Какие нужно выполнить настройки, чтобы вместо байт-кода был родной русский?
igor.kaist
пользуемся поиском, хватит задавать одни и те же вопросы… Уважаемая команда сайта, может быть состряпать FAQ?
pyuser
А я, честно говоря, просто не могу представить себе консоль, которая не может отобразить строку, набранную в ней же :)
ЗЫ. если речь идет о простой строке, а не о списке, словаре и т.д
Savyur
igor.kaist
пользуемся поиском, хватит задавать одни и те же вопросы… Уважаемая команда сайта, может быть состряпать FAQ?
Такую реакцию предполагал.
Я внимательно прочитал все подходящие сообщения форума, но увы :( так и не нашел ответа.
Большинство вопросов относится к кодировкам внутри модулей, а не к консоли.
А вот, что необходимо именно предварительно проделать, что бы указанный мной текст, вводимый в консоли, давал ожидаемый результат???
Viper
Savyur
>>>s
в этом случае используется repr.
Александр Кошелев
Savyur
А вот, что необходимо именно предварительно проделать, что бы указанный мной текст, вводимый в консоли, давал ожидаемый результат???
А кто вам сказал, что ожидаемый вами результат - правильный результат?

В случае print над строкой делается str, а без него – repr. repr выводит внутреннее представление строки – байты.
Savyur
Daevaorn
Savyur
А вот, что необходимо именно предварительно проделать, что бы указанный мной текст, вводимый в консоли, давал ожидаемый результат???
А кто вам сказал, что ожидаемый вами результат - правильный результат?

В случае print над строкой делается str, а без него – repr. repr выводит внутренее представление строки – байты.
Пусть так, тогда почему “внутренее представление строки” выводится только для русского текста, а для английского не выводится?
Ferroman
Потому что для латиницы он совпадает.
Savyur
Тогда я не понимаю следующего.
Пусть
>>>a=['АБВ','ГДЕ']
Почему:
>>>print a[0]
>>>АБВ
А вот
>>>print a
>>>['\x... и т.д.
Т.е. в первом случае выводится текст первого элемента списка
Во втором, почему то, нельзя взять и выдать тоже самое для каждого из его элементов,
а выдается внутреннее представление?
Ferroman
Вам же сказали - в первом выводится то, что возвращает str, а во втором - repr.
Прочитайте же, наконец, что это такое и перестаньте задать один и тот же вопрос.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB