Python 2 CGI现场存储POST变量编码



我在任何地方都无法获得此信息。

有人知道通过python cgi fieldstorage对象检索的字符串的编码是什么?

例如,我有此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>

我通过Apache通过此Python文件进行处理:

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

标题和内容将为UTF8编码字符串?

这个问题对什么编码显示了一些混乱。

通过Internet接收到的数据只是字节。Python无法知道它是什么"编码"。这完全取决于它的生产方式。

在Python 3中,该数据将是一个差异;在Python 2中,它将是一个字符串,但它们都没有内在编码。

如果您知道编码源,则可以将其解码为Unicode字符串;UTF-8是一个很好的猜测,在大多数情况下会做正确的事情,但这可能是错误的。

最新更新