我正在尝试编写一个简单的聊天系统,它接受各种语言并自动翻译它们,在其旁边打印原始语言和第二语言(例如英语)。
但是,我遇到了无穷无尽的问题,我认为原因是因为 Python 将 os.environ 读取为 ASCII 字节字符串,而不是 Unicode。我需要能够从 Apache 中以 unicode、utf-8 检索 QUERY STRING 环境变量,这样我才能真正获取不同字符集中的文本。现在,它们都显示为 ?s。
无论如何我可以改变这个,所以python可以在unicode中读取os.environ?是 Apache、Linux 还是 Python 本身的问题?我已经在谷歌搜索了几个小时,大部分答案都是关于 python 3,我很犹豫要升级到它(但如果没有其他选择的话会)。
我让 Apache 将所有字符集覆盖为 utf-8,所以我的所有页面都是这样强制的。
这是我非常简单的测试 HTML:
<form action=exec/post.py method=post><input type=text name='a'><input type=submit></form>
这是它调用的 post.py:
#!/usr/bin/python
import os
import urllib2
print "Content-Type: text/html; charset=utf-8"
print
for key,value in os.environ.items():
print key + ":"+ str(type(value))
然后,如果您查看输出的来源,它会将类型显示为 str,而不是 unicode。