Python cgi脚本接收内容类型为: application / x-www-form-urlencoded 的POST XMLHttpRequest。值未编码。 这看起来像这样:
xhr.open("POST", "URL", true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send('RID=123&RName=Bäcker');
在Chromes开发人员工具中,数据源中的表单数据在源代码中如下所示:
RID = 123&安培; RNAME =背衬
或在解析视图中这样:
RID :123
RName :Bäcker
python3脚本在fieldstorage中获取表单:
#! /usr/bin/env python3
# -*- coding: UTF-8 -*-
import cgi
myform = cgi.FieldStorage()
print(str(myform["RName"].value))
打印输出是B \ xe4cker? 我曾尝试使用.encode('iso-8859-1')或解码('utf-8'),但它不是很成功。
如何更改正确显示的编码或代码类型?
答案 0 :(得分:2)
尝试将编码添加到str()
功能:
#! /usr/bin/env python3
# -*- coding: UTF-8 -*-
import cgi
myform = cgi.FieldStorage()
print(str(myform["RName"].value, encoding = 'iso-8859-1'))