首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Peter Piper编写了一个Python程序,结果丢失了所有的unicode字符

Peter Piper编写了一个Python程序,结果丢失了所有的unicode字符
EN

Stack Overflow用户
提问于 2012-01-07 00:48:16
回答 3查看 398关注 0票数 16

我有一个Python脚本,它使用urllib2.urlopen加载网页,执行一些不同的魔术,然后使用print输出结果。然后我们在Windows上运行该程序,如下所示:

代码语言:javascript
复制
python program.py > output.htm

问题来了:

urlopen从输出UTF8的IIS服务器读取数据。它会在输出中显示相同的数据,但是某些字符(比如Word总是违背您的意愿为您插入长连字符,因为它比您聪明)会乱码,并以–结尾。

在进一步的调查中,我注意到即使web服务器输出UTF8数据,output.htm文件也是使用ISO8859-1字符集编码的。

我的问题:

  1. 当您将Python程序重定向到Windows上的输出文件时,它是否始终使用此字符集?
  2. 如果是,是否有任何方法可以更改该行为?
  3. 如果不是,是否有解决方法?我想我可以只将output.htm作为命令行参数传入,并写入该文件而不是屏幕,但我必须在程序中重做一大堆逻辑。

谢谢你的帮助!

更新:

output.htm的顶部,我添加了:

代码语言:javascript
复制
<?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,尽管它显然不是。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8761310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档