【问题标题】:How do I print unicode characters in Python 3 CGI?如何在 Python 3 CGI 中打印 unicode 字符?
【发布时间】:2017-12-27 20:55:55
【问题描述】:

我正在尝试运行一个包含一些 Unicode 字符串的 python CGI 脚本。它在控制台中运行良好,但是当我在浏览器中运行它时,它会出现以下错误-

UnicodeEncodeError: 'ascii' codec can't encode character '\u2026' in position 198: ordinal not in range(128)

这两个我都试过了-
encode('ascii','ignore') unicodedata.normalize('NFKD',var).encode('ascii', 'ignore').strip()
var 是保存 unicode 字符串的变量。

现在如何在浏览器中打印 Unicode 或 ascii 而不会出错?

【问题讨论】:

    标签: python python-3.x unicode encoding cgi


    【解决方案1】:

    当 Python 将 Unicode 字符串打印到控制台时,它通常会检测控制台编码并使用该编码自动对 Unicode 字符串进行编码。对于 CGI,没有终端,因此默认为 ascii。您可以使用以下方法将stdout 更改为另一种编码:

    import codecs
    sys.stdout = codecs.getwriter('utf8')(sys.stdout.buffer)
    

    您也可以为stderr 使用类似的行。

    【讨论】:

      猜你喜欢
      • 2017-02-16
      • 2012-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-26
      相关资源
      最近更新 更多