How can I serve files with UTF-8 encoding using Python SimpleHTTPServer?
Had the same problem, the following code worked for me.
To start a SimpleHTTPServer with UTF-8 encoding, simply copy/paste the following in terminal (for Python 2).
python -c "import SimpleHTTPServer; m = SimpleHTTPServer.SimpleHTTPRequestHandler.extensions_map; m[''] = 'text/plain'; m.update(dict([(k, v + ';charset=UTF-8') for k, v in m.items()])); SimpleHTTPServer.test();"
Ensure that you have the correct charset in your HTML files beforehand.
EDIT: Update for Python 3:
python3 -c "from http.server import test, SimpleHTTPRequestHandler as RH; RH.extensions_map={k:v+';charset=UTF-8' for k,v in RH.extensions_map.items()}; test(RH)"
The test
function also accepts arguments like port
and bind
so that it's possible to specify the address and the port to listen on.