2023年8月3日发(作者:)
socket传送⽂件格式的问题在python3中socket传送⽂件只能传送‘bytes'类型,如下例⼦:import socketclient = ()t(("localhost",8808))(b"Hello world!")在例⼦中“hello world"为字符串类型,所以要转换成”bytes"类型,所以前⾯加⼀个“b"就⾏了,但是,如何将“Hello world"改成中⽂就就会出错,因为这种形式只能将存在于Ascii码编码内的字符串和符号进⾏转换,当⼀个字符串不在Ascii码编码范围内例如中⽂,则⽤这种形式就会报错,所以当出现中⽂字符串时,要⽤encode进⾏编码,编码后字符串会变成为字节类型(bytes),如下所⽰: decode encode bytes ------> str(unicode)------>bytes这样之后,发送端就可以将信息以“bytes"类型发送,服务器接收到的也是编码后的⼆进制信息,要显⽰中⽂必须要采⽤decode解码。所以,如何是中⽂要采⽤如下形式:import socketclient = ()t(("localhost",8808))("你好世界!".encode("utf-8"))
2023年8月3日发(作者:)
socket传送⽂件格式的问题在python3中socket传送⽂件只能传送‘bytes'类型,如下例⼦:import socketclient = ()t(("localhost",8808))(b"Hello world!")在例⼦中“hello world"为字符串类型,所以要转换成”bytes"类型,所以前⾯加⼀个“b"就⾏了,但是,如何将“Hello world"改成中⽂就就会出错,因为这种形式只能将存在于Ascii码编码内的字符串和符号进⾏转换,当⼀个字符串不在Ascii码编码范围内例如中⽂,则⽤这种形式就会报错,所以当出现中⽂字符串时,要⽤encode进⾏编码,编码后字符串会变成为字节类型(bytes),如下所⽰: decode encode bytes ------> str(unicode)------>bytes这样之后,发送端就可以将信息以“bytes"类型发送,服务器接收到的也是编码后的⼆进制信息,要显⽰中⽂必须要采⽤decode解码。所以,如何是中⽂要采⽤如下形式:import socketclient = ()t(("localhost",8808))("你好世界!".encode("utf-8"))
发布评论