使用umlauts错误进行Python URL编码

使用umlauts错误进行Python URL编码,python,encoding,urllib2,Python,Encoding,Urllib2,我正在阅读网页内容,并用umlauts检查单词。该词出现在页面内容中。但是pythonfind('u')函数没有找到单词 import urllib2 opener = urllib2.build_opener() page_content = opener.open(url).read() page_content.find('ü') 我已尝试使用u'ü'转换搜索字符串。那么错误是 'SyntaxError: (unicode error) 'utf8' codec can't decod

我正在阅读网页内容,并用umlauts检查单词。该词出现在页面内容中。但是python
find('u')
函数没有找到单词

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

我已经打印了页面内容。在那里,umlautü正在转换为“ü”。如果我尝试使用page_content.find('u'),它工作得很好。请让我知道是否有更好的解决方案


如果有任何建议,我将不胜感激。

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

# coding: iso-8859-1

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

如果您在文件顶部定义UTF-8编码,如下所示,那么应该可以工作。请注意,
编码
行必须是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'ü')

或者更好的是,您可以保留编码:utf-8,并用utf-8而不是拉丁语1保存文件。您使用的编辑器是什么?保存文件时,请确保以UTF-8编码保存(几乎所有编辑器都有此选项)。文件开头使用编码:utf-8的事实告诉解释器,您将使用utf-8,但这不会使文件utf-8结束编码,除非您自己制作。检查编码行的位置-它必须是文件的第一行或第二行file@MariaZverina那不行。。。即使他不再得到错误,page_content.find('u')将始终返回-1,即使该页面确实包含u。如上所述,他必须保存UTF-8中保存的文件,以便工作。编码声明本身是不够的。@ioanalexandrucu page_content.find(u'ü')应该可以工作。。。