Найти - Пользователи
Полная версия: Помогите со строками
Начало » Python для новичков » Помогите со строками
1
pablodiguerero
Написал небольшой парсер почты, столкнулся с такой проблемой: сервер возвращает строку, например такую:

p = u'\xd1\x84\xd0\xbe\xd1\x80\xd1\x83\xd0\xbc\xd0\xb5 \xd0\xbf\xd0\xbe \xd0\xb0\xd0\xb4\xd1\x80\xd0\xb5\xd1\x81\xd1\x83 http://biblioteka.cc/index.php '

Если вы кинете её в консоль, то будет видно, что у строки проблемы. Но, если убрать символ u в начале строки, то проблемы исчезнут. Можно ли это программно находить и исправлять?
Metallikus
Вот из-за такого я от python2 и отказался
doza_and
pablodiguerero
что у строки проблемы
Это не у строки проблемы а у вас. Чтобы исправить надо понять что вас не устраивает. Исправляется это правильным согласованием кодировок источника и приемника. Обычно добиваются чтобы она правильно перевелась в unicode а потом делают что хотят.
py.user.next
Неправильно получил юникодовую строку из байтовой строки.

>>> s = '\xd1\x84\xd0\xbe\xd1\x80\xd1\x83\xd0\xbc\xd0\xb5 \xd0\xbf\xd0\xbe \xd0\xb0\xd0\xb4\xd1\x80\xd0\xb5\xd1\x81\xd1\x83 http://biblioteka.cc/index.php '
>>> s
'\xd1\x84\xd0\xbe\xd1\x80\xd1\x83\xd0\xbc\xd0\xb5 \xd0\xbf\xd0\xbe \xd0\xb0\xd0\xb4\xd1\x80\xd0\xb5\xd1\x81\xd1\x83 http://biblioteka.cc/index.php '
>>> ds = s.decode('utf-8')
>>> ds
u'\u0444\u043e\u0440\u0443\u043c\u0435 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 http://biblioteka.cc/index.php '
>>> print ds
форуме по адресу http://biblioteka.cc/index.php 
>>>
pablodiguerero
doza_and
Это не у строки проблемы а у вас. Чтобы исправить надо понять что вас не устраивает. Исправляется это правильным согласованием кодировок источника и приемника. Обычно добиваются чтобы она правильно перевелась в unicode а потом делают что хотят.
Передается она с гугловского imap сервера. Половина писем передается правильно, половина - вот в таком виде. В таком виде они передаются потому что их отправили криво. Кто виноват и что делать?
pablodiguerero
Скажем так, на стороне источника проблему решить невозможно. Реально ли с этим разобраться на моей стороне?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB