Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 26, 2009 12:49:08

rooty
От:
Зарегистрирован: 2009-09-26
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

преобразование unicode -> str

Всем привет
Как можно преобразовать строку u'Слово' в ‘Слово’ ?

u'Слово\n'.decode('utf-8') - так ascii' codec can't encode characters in position 0-7: ordinal not in range(128)
u'Слово\n'.encode('utf-8') - так получается байтовая строка, но не похожая на “Слово”

Мне это нужно чтобы подсунуть в urllib.quote(), а он не понимает unicode
Нужная мне последовательность генерится в случае если вызывать urllib.quote('Слово'), но вот это слово надо как то получить из u'Слово'.



Отредактировано (Сен. 26, 2009 12:49:51)

Офлайн

#2 Сен. 26, 2009 13:01:04

truporez
От:
Зарегистрирован: 2009-05-08
Сообщения: 266
Репутация: +  6  -
Профиль   Адрес электронной почты  

преобразование unicode -> str

В первом случаем decode декодирует строку из указанной кодировки в уникод. И естественно, что попытка декодировать уникод-строку снова в уникод сказав, что это utf-8 строка ни к чему хорошему не приведет.

Во втором ты получаешь utf-8 строку из уникода. Если тебе нужна строка в однобайтовом представлении, указывай однобайтовую кодировку. Как вариант: u'Слово\n'.encode('cp1251')



Офлайн

#3 Сен. 26, 2009 13:15:58

rooty
От:
Зарегистрирован: 2009-09-26
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

преобразование unicode -> str

Пытался и так:
u'Слово\n'.encode('cp1251')

Выдает:
'charmap' codec can't encode characters in position 0-2: character maps to <undefined>



Офлайн

#4 Сен. 26, 2009 15:24:51

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

преобразование unicode -> str

str(u“слово”) ?



Офлайн

#5 Сен. 26, 2009 15:54:14

truporez
От:
Зарегистрирован: 2009-05-08
Сообщения: 266
Репутация: +  6  -
Профиль   Адрес электронной почты  

преобразование unicode -> str

в заголовке файла кодировка прописана? сам файл в указанной кодировке?



Офлайн

#6 Сен. 26, 2009 19:32:41

rooty
От:
Зарегистрирован: 2009-09-26
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

преобразование unicode -> str

Да, дело оказалось в том что в заголовке не было прописано кодировки utf8, спасибо.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version