Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 23, 2011 02:52:18

avsv
От:
Зарегистрирован: 2011-06-11
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Фокусы с кодировкой urllib.urlencode

Пишу скрипт, для удобной переписки на мобильном сайте.

url = 'http://spaces.ru/mail2/?sid=' + session + '&list=&p=1&cid=' + user_id
req=urllib2.Request(url)
r=urllib2.urlopen(req)
f=r.read()

# В ПЕРЕМЕННОЙ f ТЕПЕРЬ НАХОДИТСЯ ПОЛНЫЙ HTML КОД СТРАНИЦЫ
# СЕРВЕР РАБОТАЕТ В UTF-8
# ПРОПУСКАЮ КУСОК КОДА, ОН ВЫДЁРГИВАЕТ ПОЛЯ ИЗ ФОРМЫ И СКЛАДЫВАЕТ В СЛОВАРЬ

# * * *

# В F ПОЛУЧАЕМ {'key1':'value1', ..., 'keyN':'valueN'}


# ТЕПЕРЬ К ПАРАМЕТРАМ НУЖНО ДОБАВИТЬ САМЫЙ ВАЖНЫЙ ТЕКСТ
# ПЕРЕМЕННАЯ message - СТРОКА В ЮНИКОДЕ

s.update({'text':unicode(message).encode('utf-8')})
# В ЭТОМ ВИДЕ НА КАМПЕ РАБОТАЕТ ВСЁ ГУД
# А ВОТ НА СМАРТЕ ПРОБЛЕМА!

# ЕСЛИ ОТДАВАТЬ {'text':message}
# ВЫДАЁТ ИСКЛЮЧЕНИЕ

# ЕСЛИ message.encode('utf-8') ИЛИ unicode(message).encode('utf-8')
# КОДИРОВКА UTF-8 КАКИМТО ОБРАЗОМ ПРЕОБРАЗУЕТСЯ В CP1252
# ?aaioae! ?aaioae! ?aaioae!

# urllib.quote ВЫДАЁТ %D0%B4%D0%B0%D0%B2%D0%B0%D0%B9


post=urllib.urlencode(s)
req=urllib2.Request(url, post)
r=urllib2.urlopen(req)
# ВЫВОДИМ ОТВЕТ СЕРВЕРА
print r.read()
Кодировка файла cp1251, если меняю на utf-8 вообще не хочет работать на смарте, хотя на кампе всё гуд.
Вобщем жду совета от более опытных python'щиков =)



Офлайн

#2 Янв. 5, 2012 20:34:30

ReaL_HarDCorE
От:
Зарегистрирован: 2011-01-19
Сообщения: 84
Репутация: +  0  -
Профиль   Отправить e-mail  

Фокусы с кодировкой urllib.urlencode

маленькая просьба-писать как именно не работает. Какую ошибку выдает или просто вылетает.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version