[英]how to download utf-8 encoded content with cyrillic
請告訴我西里爾語獲取正確utf-8內容的方法。
我使用下一個代碼段:
from http.client import HTTPSConnection
conn = HTTPSConnection('lifehacker.ru')
conn.request('GET', '/')
resp = conn.getresponse()
st = resp.read()
content = ''.join(map(chr, st))
conn.close()
print(content)
結果,我得到一些類似的內容:
<title>ÐайÑÑÐ°ÐºÐµÑ - ÑовеÑÑ Ð¸
如何獲得正確的西里爾字母符號?
你應該像這樣解碼內容
st = resp.read().decode("utf-8")
更簡單的方法是使用請求,它們以某種方式自動解碼內容
import requests
response = requests.get('http://lifehacker.ru')
print(response.text)
如果必須使用HTTPSConnection,則需要使用適當的編碼對響應進行解碼:
content = st.decode('utf-8')
(在Python 3中, resp.read()
返回一個字節對象,准備以適當的編碼進行解碼)
但是,請勿對編碼進行硬編碼,即UTF-8。 使用“ Content-type
字段可以計算出正確的編碼,或者使用“ 請求”庫來代替。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.