Найти - Пользователи
Полная версия: Фокусы с кодировкой urllib.urlencode
Начало » Mobile Python » Фокусы с кодировкой urllib.urlencode
1
avsv
Пишу скрипт, для удобной переписки на мобильном сайте.

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'щиков =)
ReaL_HarDCorE
маленькая просьба-писать как именно не работает. Какую ошибку выдает или просто вылетает.
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