簡體   English   中英

Python解碼/編碼問題

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

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