2013-03-08 82 views
8

我经常使用以下方法来迅速火起来的web服务器,用于为当前文件夹中的HTML内容(本地测试):如何使用Python SimpleHTTPServer为UTF-8编码提供文件?

python -m SimpleHTTPServer 8000 

是否有一个相当简单的方法,我可以做到这一点,但在服务器以UTF-8编码而不是系统默认的方式提供文件?

+1

是由SimpleHTTPServer更改的编码?简单,我会假设它按原样服务于字节。 – monkut 2013-03-08 07:36:12

+1

你是对的:它不是文件编码,我错过了HTML中的charset元标记。感谢您让我走上正轨! – 2013-03-08 07:50:30

+0

不知道现在该怎么处理这个问题 - 删除它? – 2013-03-08 07:50:52

回答

13

有同样的问题,下面的代码为我工作。

要使用UTF-8编码启动SimpleHTTPServer,只需在终端中复制/粘贴以下内容即可。

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文件中包含正确的字符集。

+0

在这个例子中,我该如何更改服务器端口? – Gurzo 2017-09-04 18:06:10

+0

@Gurzo只需将portnumber作为参数附加到python命令即可。像'python -c“import ...”1234'在端口1234上运行它。 – oligofren 2018-01-15 21:52:37

+0

我有同样的问题。无法让代码工作,但添加修复了这些字符。 – David 2018-01-31 10:50:01