簡體   English   中英

Python encode()不起作用?

[英]Python encode() doesn't work?

我試過encode() ,它不起作用。 我不斷收到TypeError: must be str, not bytes因為通常我會得到TypeError: a bytes-like object is required, not 'str'

ip = socket.gethostbyname("google.com")
port = 80
robot = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
payload = "Hello world"
try:
    robot.connect((ip, port)))
    robot.send('GET '+payload.encode()+' HTTP/1.1\n\n')
except socket.error:
    print("connection lost")
robot.close()

我不明白我做錯了什么?

如果查看socket.send的文檔, socket.send可以看到第一個參數是bytes而不是字符串。 encode字符串與特定的編碼把它變成字節,你decode與特定編碼的字節把它們變成一個字符串:

robot.send(b'GET ' + payload.encode() + b' HTTP/1.1\n\n')

str.encodestr.decode默認為utf-8

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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