文件如下:
import socket
HOST, PORT = '127.0.0.1', 8888
listen_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
listen_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
listen_socket.bind((HOST, PORT))
listen_socket.listen(1)
print ('Serving HTTP on port %s ...' % PORT)
while True:
client_connection, client_address = listen_socket.accept()
request = client_connection.recv(1024)
print (request.decode('utf-8'))
http_response = """
HTTP/1.1 200 OK
Hello, World!
""".encode("utf-8")
client_connection.sendall(http_response)
client_connection.close()
其中的 print (request.decode('utf-8'))
不加decode()还能运行,一转码不管decode()括号里面写任何东西或者空着就会报错。。
错误如下所示:
websercer1.py文件我确定是utf-8编码格式的,真心不知道这是什么回事了。。
哪位知道麻烦告知,拜谢。。。
nyahkod ialah penyahkodan.
Ia tiada kaitan dengan pengekodan fail websercer1.py.
request.decode('encoding') #merujuk kepada pengekodan yang anda gunakan untuk menyahkod permintaan...
Ralat anda mungkin telah dikodkan dalam UTF-8
Walaupun anda pasti ia adalah pengekodan UTF-8, saya cadangkan anda menyimpannya ke fail txt dahulu dan lihat
Jika format utf-8 codec tidak boleh disimpan sebagai txt, maka kandungan anda tidak seharusnya utf-8Kaedah bodoh yang sering saya gunakan untuk merangkak data ialah menulis sesuatu ke dalam txt tanpa berfikir dan lihat ke dalam. Apakah ini?
Pengekodan anda pada asalnya adalah UTF-8, jadi tidak perlu mengekod atau menyahkod. Pengekodan itu adalah berlebihan, (dan anda juga salah menulisnya, anda perlu menyahkod dahulu, dan kemudian mengekod, jadi ia adalah berlebihan)
http_response = """HTTP/1.1 200 OK Hello, World!""".decode (' utf-8').encode("utf-8")
Akhirnya mungkin ada masalah dengan kod soket. Sila semak semula