Python3에서 간단한 웹 페이지를 제공 할 때 BaseHTTPRequestHandler를 사용하여 인코딩 문제가 발생합니다.python3 : http.server의 UTF-8 인코딩
이#!/usr/bin/python3
# -*- coding: utf-8 -*
from http.server import BaseHTTPRequestHandler, HTTPServer
from os import curdir, sep, remove
import cgi
HTML_FILE_NAME = 'test.html'
PORT_NUMBER = 8080
# This class will handles any incoming request from the browser
class myHandler(BaseHTTPRequestHandler):
# Handler for the GET requests
def do_GET(self):
self.path = HTML_FILE_NAME
try:
with open(curdir + sep + self.path, 'r') as f:
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
self.wfile.write(bytes(f.read(), 'UTF-8'))
return
except IOError:
self.send_error(404, 'File Not Found: %s' % self.path)
try:
# Create a web server and define the handler to manage the incoming request
with open(HTML_FILE_NAME, 'w') as f:
f.write('<!DOCTYPE html><html><body> <p> My name is Jérôme </p> </body></html>')
print('Started httpserver on port %i.' % PORT_NUMBER)
#Wait forever for incoming http requests
HTTPServer(('', PORT_NUMBER), myHandler).serve_forever()
except KeyboardInterrupt:
print('Interrupted by the user - shutting down the web server.')
server.socket.close()
remove(HTML_FILE_NAME)
예상되는 결과는 내 이름을 표시하는 웹 페이지가 제롬 인 역할을하는 것입니다 : 여기
은 작업 예입니다. 내 이름은 당신이 볼 수 있듯이 JA © rÃ'me
는, HTML 페이지가 제대로 self.wfile.write(bytes(f.read(), 'UTF-8'))
와, 인코딩, 그래서 문제가 웹 서버에서 오는 생각 :
대신, 나는 가지고있다.
웹 서버에 UTF-8로 페이지를 제공하도록 지시하는 방법은 무엇입니까?