UTF-8로 인코딩 된 웹 브라우저에 HTML 페이지를 보내려고합니다. 다음 예는 실패하지만 : 나는 인코딩을 제거하고 단순히 파이썬 3 유니 코드 문자열을 반환하는 경우WSGI 출력을 UTF-8로 인코딩하는 방법은 무엇입니까?
Serving on 8000
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/wsgiref/handlers.py", line 75, in run
self.finish_response()
File "/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/wsgiref/handlers.py", line 116, in finish_response
self.write(data)
File "/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/wsgiref/handlers.py", line 202, in write
"write() argument must be a string or bytes"
의 wsgiref 서버가 어떤 캐릭터 세트 브라우저 지정에 인코딩하는 것 같다 여기
from wsgiref.simple_server import make_server
def app(environ, start_response):
output = "<html><body><p>Räksmörgås</p></body></html>".encode('utf-8')
start_response('200 OK', [
('Content-Type', 'text/html'),
('Content-Length', str(len(output))),
])
return output
port = 8000
httpd = make_server('', port, app)
print("Serving on", port)
httpd.serve_forever()
는 역 추적입니다 요청 헤더에. 그러나 모든 WSGI 서버가 동일한 작업을 수행 할 것으로 기대할 수는 없으므로이 컨트롤을 직접 사용하고 싶습니다. UTF-8로 인코딩 된 HTML 페이지를 반환하려면 어떻게해야합니까?
감사합니다.
당신의 출력이 유니 코드 문자해야해야) 그것을 인코딩. 아마 당신의 현재 문제의 원인이 아니지만 그것은 언젠가 엉덩이에 당신을 물 것입니다. –
u'Räksmörgås '와 같은 문자열을 쓰는 것을 말하고 있습니까? 나는 파이썬 3에있는 것처럼 그렇게 할 필요가 없다. – pthulin