簡體   English   中英

如何使用西里爾文下載utf-8編碼的內容

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM