2

我正在阅读网页内容并检查带有变音符号的单词。该词出现在页面内容中。但是pythonfind('ü')函数没有找到这个词。

import urllib2
opener = urllib2.build_opener()
page_content = opener.open(url).read() 
page_content.find('ü')

我试图用 u'ü' 转换搜索字符串。那么错误是

'SyntaxError: (unicode error) 'utf8' codec can't decode byte 0xfc in position 0'

我在我的 .py 文件中使用了 # - - coding: utf-8 - -。

我已经打印了 page_content。那里的变音符号 ü 正在转换为 'ü'。如果我尝试使用 page_content.find('ü'),它工作正常。请让我知道是否有更好的解决方案。

我将不胜感激任何建议。

4

2 回答 2

2

您的 Python 尝试将源文件(或控制台输入)解析为 UTF-8,但它实际上是用 Latin-1 编码的。你可以尝试放一个

# coding: iso-8859-1

在源文件的顶部添加注释,或者更好的是,使用支持 UTF-8 的编辑器/终端仿真器并将脚本保存在该编码中。

于 2012-07-26T11:29:58.420 回答
0

如果您按如下方式在文件顶部定义 UTF-8 编码,则应该可以。请注意,该coding行必须是 hashbang 之后的第一行或第二行。

#!/usr/bin/python
# coding: utf-8

import urllib2

url = 'http://en.wikipedia.org/wiki/Germanic_umlaut'
opener = urllib2.build_opener()
page_content = opener.open(url).read() 
page_content.find(u'ü')
于 2012-07-26T11:34:15.440 回答