2014-12-29 22 views
1

Я пытаюсь отправить некоторые данные на свой веб-сервер Python через POST, проблема в том, что данные содержат специальные символы.Кодирование UTF8 веб-сервера Python

Я напечатал это данные в браузер обратно, но им получить это: Отправленные данные: текст с помощью специальных Received данных: текст с зр \ xc3 \ xa9cial

Я уже установили код на # - - кодирование: utf-8 - - и попытался кодировать или декодировать строку в UTF-8, но браузер получает только ее.

+0

Не могли бы вы рассказать о каких проблемах вы столкнулись? – dazedconfused

+0

Если я напечатаю «spécial», в браузере он появится ОК. Но если он был отправлен и передан через parse_qs, он не может больше декодировать его. – BernardoGO

+0

Не могли бы вы показать некоторые связанные коды? – dazedconfused

ответ

2

b'sp\xc3\xa9cial' - допустимый литерал байтов Python. Вы можете декодировать его в строку Unicode (.decode('utf-8')), чтобы получить u'spécial'.

Вероятная причина заключается в том, что вы напечатали составную структуру, такую ​​как список, содержащий байтовую строку. repr() вызывается по каждому товару:

>>> print 'spécial' 
spécial 
>>> print ['spécial'] 
['sp\xc3\xa9cial'] 

# -*- coding: utf-8 -*- определяет исходный код кодировку. Он не имеет ничего общего с кодировкой символов во время выполнения.

Смежные вопросы