[英]Python Decoding/Encoding Problems
我知道互聯網上有很多人表示在Python中使用字符串編碼時遇到問題,但是無論我如何嘗試,我都無法弄清楚如何解決我的問題。 本質上,我使用TCP套接字連接到Web服務器,然后向該服務器發送HTTP請求。 我將響應讀入一系列緩沖區,這些緩沖區經過解碼和連接后可以創建一個完整的響應字符串。 但是,當我得到響應時,我得到了UnicodeDecodingErrors 。 我想使用我的程序訪問許多不同的網站,那么對於這個問題,有什么解決方案可以與我提供的幾乎任何網站一起使用嗎?
感謝您的時間。
一些代碼:
def getAllFromSocket(socket):
'''Reads all data from a socket and returns a string of it.'''
more_bytes = True
message = ''
if(socket!=None):
while(more_bytes):
buffer = socket.recv(1024)
if len(buffer) == 0:
more_bytes = False
else:
message += buffer.decode('utf-8')
return message
所以當我這樣做時:
received_message = getAllFromSocket(my_sock)
我得到:
UnicodeDecodeError: 'utf8' codec can't decode byte 0xd0 in position 1023: unexpected end of data
您可以嘗試使用UnicodeDammit查找數據的編碼。 確保您正在獲取utf-8
。 您還可以選擇忽略錯誤:
buffer.decode("utf-8", "ignore")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.