【发布时间】:2018-05-28 13:25:46
【问题描述】:
一个 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 开发者工具中,Datasource 中的表单数据在源代码中如下所示:
RID=123&RName=Bäcker
或在解析视图中像这样:
RID:123
RName:贝克尔
python3 脚本在字段存储中获取表单:
#! /usr/bin/env python3
# -*- coding: UTF-8 -*-
import cgi
myform = cgi.FieldStorage()
print(str(myform["RName"].value))
打印输出是 B\xe4cker? 我曾尝试使用 .encode('iso-8859-1') 或 decode('utf-8') 但不是很成功。
如何更改正确显示的编码或代码类型?
【问题讨论】:
标签: python python-3.x character-encoding cgi special-characters