我正在尝试从包含utf-8字符的Python 3 HTML打印。下面的程序可以在Python 2和Macs和Linux上的Python 3上正常工作。但是在Windows上,我必须删除<meta charset='UTF-8'>
行以使utf字符正确显示。我尝试使用#--编码:UTF-8--,但这也无济于事。
这是Python 3中的错误吗?
print( "Content-type: text/html;\n")
print( """<!DOCTYPE html>
<html><head>
<meta charset="UTF-8">
</head><body>
<p>¡Hola Señor Müller!</p>
</body></html>
""")
答案 0 :(得分:1)
print
未发送编码为UTF-8的数据,尽管这是您声明的内容。对于CGI脚本,您可以使用以下命令覆盖stdout
的默认编码:
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')