非常新的编码。这是我试图运行的最初代码,但发现它与Python3不兼容,因为它处理字符串和字节的方式
def opensocket():
s = socket.socket()
s.connect((HOST,PORT))
s.send("PASS " + PASS + "\r\n")
s.send("NICK " + IDENT + "\r\n")
s.send("JOIN #" + CHANNEL + "\r\n")
return s
我想我需要将这些字符串编码成字节,但是我尝试过的所有转换方法都给出了错误。这是我试过的一些
def opensocket():
s = socket.socket()
s.connect((HOST,PORT))
s.send(b"PASS " + PASS + "\r\n")
s.send(b"NICK " + IDENT + "\r\n")
s.send(b"JOIN #" + CHANNEL + "\r\n")
及
def opensocket():
s = socket.socket()
s.connect((HOST,PORT))
s.send("PASS " + PASS + "\r\n".encode())
s.send("NICK " + IDENT + "\r\n".encode())
s.send("JOIN #" + CHANNEL + "\r\n".encode())
return s
这两个错误都表示str不能连接成字节 有什么帮助吗
编辑:浏览了推荐的帖子,但我没有从中得到任何收获。它看起来很不一样,我对它是如此陌生,以至于我都不知道他想转换的字符串在哪里
在
PASS
、IDENT
和CHANNEL
是bytes
的情况下:在
PASS
、IDENT
和CHANNEL
是str
的情况下:了解您正在使用的协议以及实际使用的编码非常重要
'ascii'
是一个安全的赌注,但这意味着您只能使用ASCII字符,因此如果协议实际指定UTF-8字符串,您应该改为使用.encode('utf-8')
相关问题 更多 >
编程相关推荐