2

Web ページのコンテンツを読んでいて、ウムラウトを含む単語をチェックしています。この単語はページ コンテンツに含まれています。しかし、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'

# - - コーディング: utf-8 - - を .py ファイルで使用しました。

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行は、ハッシュバンの後の最初の行または2番目の行でなければならないことに注意してください。

#!/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 に答える