我有一个Python脚本,它使用urllib2.urlopen
加载网页,执行一些不同的魔术,然后使用print
输出结果。然后我们在Windows上运行该程序,如下所示:
python program.py > output.htm
问题来了:
urlopen
从输出UTF8的IIS服务器读取数据。它会在输出中显示相同的数据,但是某些字符(比如Word总是违背您的意愿为您插入长连字符,因为它比您聪明)会乱码,并以–
结尾。
在进一步的调查中,我注意到即使web服务器输出UTF8数据,output.htm
文件也是使用ISO8859-1字符集编码的。
我的问题:
output.htm
作为命令行参数传入,并写入该文件而不是屏幕,但我必须在程序中重做一大堆逻辑。谢谢你的帮助!
更新:
在output.htm
的顶部,我添加了:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
然而,这并没有什么区别。这些字符仍然是乱码。如果我在Firefox中手动切换到UTF-8,文件可以正确显示。IE和FF都认为这个文件是西方ISO,尽管它显然不是。
https://stackoverflow.com/questions/8761310
复制相似问题