相信用python的人必定在抓取網頁時,被編碼問題弄暈過一陣 html
前幾天寫了一個測試網頁的小腳本,並查找是否包含指定的信息。 python
在html = urllib2.open(url).read() 時,打印到控制檯始終出現亂碼。 測試
通常的解決辦法就是html.decode('utf-8').encode('gb2312'),不過這個即便用了,也沒能解決個人問題 編碼
這裏有兩個問題,第一個你要知道網頁的編碼格式是utf-8 第二你得肯定你的系統是gb2312的,能不能主動獲取網頁的編碼格式,並主動獲取系統編碼格式,像這樣 url
網頁編碼 = 獲取網頁編碼 spa
系統編碼 = 獲取系統編碼 code
html.decode(網頁編碼).encode(系統編碼) 即便我不知道網頁編碼,系統編碼,只要雙方能轉 ,就行。 htm
網頁編碼 = re.complier('正則獲取meta裏的編碼格式') utf-8
系統編碼 = sys.getfilesystemencoding() ########關鍵的關鍵 get
html.decode(網頁編碼).encode(系統編碼) 如今打印,一切正常了。我才無論系統什麼編碼,只要你能轉。