繁体   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