我真的很努力寻找答案。
我正在编写一个简单的CGI脚本,输入获取参数将进行HTML编码例如£ -> %A3
这里2个测试URL IM在我的浏览器中使用。
?a =%7b& b =%a3
?a = {& b =£
当我从cgi.fieldstorage中循环循环时,我会获得B参数的异常。 - 我知道它与某种形式的编码有关,但我只是无法找到解决方案。
key = a
value = {
key = b
错误:'ascii'编解码器无法编码字符' ufffd'位置12:不在范围内(128)
key = a
value = {
key = b
错误:'ascii'编解码器无法编码字符' xa3'位置12:不在范围内(128)
以下是测试CGI脚本。
#!/opt/python-3.3.4/bin/python3
import cgitb
import cgi
import sys
print("Content-Type: text/html; charset=utf-8")
print("")
print("<html>")
print("<body>")
print("<h1>Hello</h1>")
form = cgi.FieldStorage()
#form = cgi.FieldStorage(encoding="utf8")
for i in form.keys():
print("<br>key = ", i)
try:
tmp = form[i].value
print("<br>value = %s" % tmp)
except Exception as err:
print("<br>ERROR:", err)
print("</body>")
print("</html>")
我相信只能支持ASCII字符。因此,您需要使用非ASCII字符的帖子