Какой кодировке соответствует отображение 'аб' ->'\xd0\xb0\xd0\xb1'? (Возможно, чистая Python-проблема, хотя грешу на bash)

Модератор: Модераторы разделов

green_guy
Сообщения: 48

Какой кодировке соответствует отображение 'аб' ->'\xd0\xb0\xd0\xb1'?

Сообщение green_guy »

Выглядит это так:

Код: Выделить всё

bash-2.05b$ python
Python 2.3.5 (#1, Jan 14 2006, 14:55:25)
[GCC 3.3.5  (Gentoo Linux 3.3.5-r1, ssp-3.3.2-3, pie-8.7.7.1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> s='аб'
>>> s
'\xd0\xb0\xd0\xb1'
>>> print s
аб
>>>


Что это за кодировка такая, или может это вообще не кодировка?
Gentoo, kernel 2.6.11, Gnome, Sawfish, vim
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Какой кодировке соответствует отображение 'аб' ->'\xd0\xb0\xd0\xb1'?

Сообщение t.t »

Это юникод, а \xXX -- это запись символов через шеснадцатиричные коды.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Какой кодировке соответствует отображение 'аб' ->'\xd0\xb0\xd0\xb1'?

Сообщение elide »

elide@rebirth| ~ >> python
Python 2.4 (#1, Jan 1 2005, 21:33:55)
[GCC 3.3.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> s='аб'
>>> s
'\xc1\xc2'
>>> print s
аб
>>>
очевидно, что С1С2 - это koi8.
так что, скорее всего, это та кодировка, которая у тебя в локали указана (:
слава роботам!
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Какой кодировке соответствует отображение 'аб' ->'\xd0\xb0\xd0\xb1'?

Сообщение KiWi »

есть фитча, которую всё-таки использовать лучше:
>>> s=u'аб'
>>> s
u'\u0430\u0431'
Спасибо сказали:
green_guy
Сообщения: 48

Re: Какой кодировке соответствует отображение 'аб' ->'\xd0\xb0\xd0\xb1'?

Сообщение green_guy »

Спасибо за помощь. Локаль у меня действительно utf8. Но я думал, те коды, что выдаёт питон - utf8, а это оказалось utf16. Кроме того, у него оказывается две кодировки "по умолчанию": та которую он применяет для кавычек без дополнительных значков(у меня ascii), и та, которую он использует внутри себя, например для перекодирования, - utf16.
Вообщем, родился скрипт. Хавает любую консольную интерактивную прогу. Может перекодировать вход и выход (теперча ispell c koi8 и локалью utf8 у меня работает), сохранять и загружать историю ввода пользователя (это для gdb). Можно например сделать надстройку над gdb добавить свои команды и т.п. Хотя возможно это ещё один велосипед. Полторы сотни строк. http://khral.h16.ru/python/wrapper/wrapper.py.html
Gentoo, kernel 2.6.11, Gnome, Sawfish, vim
Спасибо сказали: