我经常使用以下方法快速启动Web服务器,以提供当前文件夹中的HTML内容(用于本地测试):

python -m SimpleHTTPServer 8000

是否有一种相当简单的方法可以做到这一点,但是让服务器使用UTF-8编码而不是系统默认值来服务文件?

最佳答案

有同样的问题,下面的代码对我有效。
要使用UTF-8编码启动SimpleHTTPServer,只需在终端中复制/粘贴以下内容(对于Python2)。

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();"

确保预先在HTML文件中有正确的字符集。
编辑:更新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)"

test函数还接受诸如portbind之类的参数,以便可以指定要侦听的地址和端口。

07-28 14:01