CGI Python\\xe4中的特殊字符不是ä

2024-05-12 20:09:31 发布

您现在位置:Python中文网/ 问答频道 /正文

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 developer Tools中,Datasource中的表单数据在source中如下所示:

RID=123&;R名称=Bä克勒

或者在解析视图中这样:

RID:123

名称:Bä克勒

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')或decode('utf-8'),但不是很成功

如何更改将正确显示的编码或代码类型


Tags: form脚本名称表单类型编码applicationwww
1条回答
网友
1楼 · 发布于 2024-05-12 20:09:31

尝试向str()函数添加编码:

#! /usr/bin/env python3    
# -*- coding: UTF-8 -*-
import cgi
myform = cgi.FieldStorage()
print(str(myform["RName"].value, encoding = 'iso-8859-1'))

相关问题 更多 >