from urllib import urlopen
web = urlopen("http://typographyforlawyers.com/straight-and-curly-
quotes.html").read()
web = web.replace("\xe2\x80\x9c".decode('utf8'), '"')
「\ xe2 \ x80 \ x9c」是捲曲引號的UTF-8字符。當我試圖找到一個網站彎引號使用此代碼,我得到這個錯誤:Python 2.7 - 查找UTF-8字符
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
web = web.replace("\xe2\x80\x9c".decode('utf8'), '"')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 2265:
ordinal not in range(128)
這個錯誤是什麼意思,我在做什麼錯了,我該如何解決?
我喜歡這個答案,但解釋可以更明確。它將Web響應轉換爲unicode,並使用「bytes」對象進行解碼,因此沒有理由觸摸ascii編解碼器。還應該提到的是,HTML文檔經常把它們的編碼放在''標籤和'utf-8'中可能不是正確的猜測。它通常是正確的,但不能保證。 – tdelaney
非常感謝你的回答,這也是有道理的。 – Dman42