LINUX.ORG.RU

Python. Как преобразовать unicode?


0

0

Подскажите, пожалуйста, как преобразовать
unicode в str?

Особенность - текст на русском языке.


Пример:

> print 'b=', b, type(b)
b= Москва str

> print 'a= ', a, type(a)
a= Петербург unicode

как изменить тип переменной а?
спасибо

anonymous

Ответ на: комментарий от watashiwa_daredeska

Спасибо, сегодня попробую

anonymous
()

использовать конструкторы типов str и unicode:
unicode(s) даст unicode для любого типа переменной s
str(s) аналогично, но если s содержит не-ascii символы,
возникнет UnicodeEncodeError. Тогда надо использовать метод
unicode.encode( s, "koi8-r" ) например, т.е. указывать явно
в какой кодировке должен быть результат.

anonymous
()
Ответ на: комментарий от anonymous

Спасибо.

Оба способа работают.

А как совершить обратную операцию str в unicode (с не-ascii символами)?

Из Python Library Reference описания locale и codec подобрать подходящую функцию превращения полученного str в unicode не удалось.

anonymous
()
Ответ на: комментарий от anonymous

uni_str = ascii_str.decode( encoding )

Тут есть подробности, которые частенько пригождаются. Но за ними - в документацию.

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от anonymous

подходящая функция -- конструктор unicode с необязательным аргументом encoding:

>>> help(unicode)
Help on class unicode in module __builtin__:

class unicode(basestring)
| unicode(string [, encoding[, errors]]) -> object
|
| Create a new Unicode object from the given encoded string.
| encoding defaults to the current default string encoding.
| errors can be 'strict', 'replace' or 'ignore' and defaults to 'strict'.
|

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.