Форум сайта python.su
Как на python перекодировать строку \u0435\u0440 в utf-8? В строке именно стоит в начале \, потом английская буква u, и далее цифры. То есть один символ занимает 6 байтов.
В таком виде хранится .properties в java, а мне нужно просматривать их diff в trac, который написан на python.
Офлайн
u'\u0435\u0440'.encode('utf-8')
Офлайн
>>> ‘\u0435\u0440’.decode('unicode_escape')
u'\u0435\u0440'
>>> _.encode('utf-8')
'\xd0\xb5\xd1\x80'
>>> print _
ер
..bw
Офлайн
Спасибо.
А чем отличается unicode_escape от raw_unicode_escape?
Офлайн
Посмотри сорцы, это быстрее чем ждать пока я освобожусь, посмотрю код (или погуглю) и сообщу тебе.
..bw
Офлайн
Первая ссылка — эта тема.
http://www.google.ru/search?client=opera&rls=en&q=%D0%90+%D1%87%D0%B5%D0%BC+%D0%BE%D1%82%D0%BB%D0%B8%D1%87%D0%B0%D0%B5%D1%82%D1%81%D1%8F+unicode_escape+%D0%BE%D1%82+raw_unicode_escape?&sourceid=opera&ie=utf-8&oe=utf-8
:)
Отличается тем, какой метод у codecs вызывается: raw_unicode_escape_decode или unicode_escape_decode. А в исходниках codecs ничего полезного не удалось найти.
Отредактировано (Июнь 25, 2010 10:28:47)
Офлайн
Не смешно :-).
Посмотри здесь по форуму, по слову raw-unicode-escape, был случай, когда требовался именно raw, но при кодировании (unicode->str). Я не стал вникать в суть, просто использовал этот кодек.
..bw
Офлайн