我试图运行一个具有一些Unicode字符串的python CGI脚本 . 它在控制台中工作正常但是当我在浏览器中运行它时会出现以下错误 -
UnicodeEncodeError:'ascii'编解码器无法对位置198中的字符'\ u2026'进行编码:序号不在范围内(128)
我试过这两个 -encode('ascii','ignore') unicodedata.normalize('NFKD',var).encode('ascii', 'ignore').strip()
var是保存unicode字符串的变量 .
现在如何在浏览器中无错误地打印Unicode或ascii?
1 回答
当Python将Unicode字符串打印到控制台时,它通常会检测控制台编码并使用该编码自动编码Unicode字符串 . 对于CGI,没有终端,因此默认为
ascii
. 您可以使用以下命令将stdout
更改为其他编码:您也可以为
stderr
使用类似的行 .