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