python 运行.py文件 一加上decode()就报错。。
PHP中文网
PHP中文网 2017-04-18 09:21:47
0
3
430

python 运行.py文件 一加上decode()就报错。。

文件如下:

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编码格式的,真心不知道这是什么回事了。。
哪位知道麻烦告知,拜谢。。。

PHP中文网
PHP中文网

认证高级PHP讲师

모든 응답(3)
阿神

decode는 디코딩입니다.
websercer1.py 파일의 인코딩과는 아무런 관련이 없습니다.

request.decode('encoding') # 요청을 디코딩하는 데 사용하는 인코딩을 나타냅니다...

귀하의 오류가 UTF-8로 인코딩되었을 수 있습니다.

伊谢尔伦

UTF-8 인코딩인 것은 확실하지만 먼저 txt 파일로 저장하고 살펴보는 것이 좋습니다.
제가 데이터를 크롤링할 때 자주 사용하는 어리석은 방법은 아무 생각 없이 txt에 내용을 쓰는 것입니다. 내부를 살펴보세요. 이게 디버깅에 더 좋습니다

으아악

utf-8 형식의 코덱을 txt로 저장할 수 없는 경우 콘텐츠는 utf-8이 아니어야 합니다.

迷茫

인코딩은 원래 UTF-8이므로 인코딩하거나 디코딩할 필요가 없습니다. 해당 인코딩은 중복됩니다. (또한 잘못 작성했기 때문에 먼저 디코딩한 다음 인코딩해야 하므로 중복됩니다.)
http_response = """HTTP/1.1 200 OK Hello, World!""".decode ('utf-8').encode("utf-8")
결국 작동하지 않았습니다. 소켓 코드에 문제가 있을 수 있습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!