发布网友 发布时间:2022-03-03 17:10
共1个回答
热心网友 时间:2022-03-03 18:39
你试这样子。将
jp.write(buf[i].decode('utf-8'))改成
jp.write(unicode(buf[i]).encode('utf-8'))python2有自动编码转换的功能。原来type(buf[i])如果是unicode,你还要decode,那么它会自动先按ascii进行encode,变成str型后,再运行decode('utf-8')。所以就会出现你上面的那个错误,汉字是不能encode成ascii的。
也许刚才的答案是错误的。
你还可以试试
jp.write(buf[i])
另外说明一下。写到socket或者是文件里,必须是string类型。不能是unicode。
这在python2和python3里是一样的。