Форум сайта python.su
Всем привет
Как можно преобразовать строку 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)
Офлайн
В первом случаем decode декодирует строку из указанной кодировки в уникод. И естественно, что попытка декодировать уникод-строку снова в уникод сказав, что это utf-8 строка ни к чему хорошему не приведет.
Во втором ты получаешь utf-8 строку из уникода. Если тебе нужна строка в однобайтовом представлении, указывай однобайтовую кодировку. Как вариант: u'Слово\n'.encode('cp1251')
Офлайн
Пытался и так:
u'Слово\n'.encode('cp1251')
Выдает:
'charmap' codec can't encode characters in position 0-2: character maps to <undefined>
Офлайн
str(u“слово”) ?
Офлайн
в заголовке файла кодировка прописана? сам файл в указанной кодировке?
Офлайн
Да, дело оказалось в том что в заголовке не было прописано кодировки utf8, спасибо.
Офлайн