2017-02-14 23 views
0

Я не могу получить эту информацию в любом месте.Python 2 cgi поле хранения пост переменной кодировки

Кто-нибудь знает, что кодировка строки, полученной через объект cgi fieldstorage python?

К примеру, у меня есть этот HTML форма:

<!DOCTYPE html> 
<html> 
<link rel="stylesheet" type="text/css" href="style.css"/> 
<body> 
    <form id="mainForm" method="post" action="./uploadArticle.py"> 
     <input type="text" name="articletitle" /></br> 
     <textarea name="articlebody" rows="50" cols="100"/></textarea></br> 
    <input type="submit"/> 
    </form> 
</body> 
</html> 

что я обрабатываю через этот питон файл с апача:

import cgi 
form = cgi.FieldStorage() 
title = form["articletitle"].value 
content = form["articlebody"].value 

Будет заголовок и содержание будут utf8 закодированных строки?

ответ

0

Вопрос показывает немного путаницы в отношении того, что такое кодировка.

Данные, полученные по интернету, всего лишь байты. Python не знает, что такое «кодирование»; это полностью зависит от того, как оно было произведено.

В Python 3 эти данные будут представлять собой байты; в Python 2 это будет строка, но ни одна из них не имеет встроенной кодировки.

Если вы знаете исходную кодировку, вы можете декодировать ее в строку юникода; utf-8 - это хорошая догадка, и в большинстве случаев это будет правильно, но это может быть неправильно.

+0

Я вижу. Предположим, я хочу декодировать переменную title, содержащую необработанные байты, в читаемую строку. Кодировка, которую я буду использовать, зависит от способа кодирования строки «по форме»? – JeD

+0

Ну, а не форма, кроме компьютера, на котором были введены данные, но да. Как я уже сказал, utf-8 обычно довольно безопасно. –

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

  • Нет связанных вопросов^_^