Как я могу подавать файлы с кодировкой UTF-8 с помощью Python SimpleHTTPServer?

Я часто использую следующее, чтобы быстро запустить веб-сервер для обслуживания содержимого HTML из текущей папки (для локального тестирования):

python -m SimpleHTTPServer 8000

Есть ли простой способ, которым я могу это сделать, но сервер должен обслуживать файлы с кодировкой UTF-8, а не по умолчанию?

Ответ 1

Была такая же проблема, следующий код работал для меня.

Чтобы запустить SimpleHTTPServer с кодировкой UTF-8, просто скопируйте/вставьте следующее в терминал (для 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();"

Убедитесь, что у вас есть правильная кодировка в ваших 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 также принимает аргументы, такие как port и bind чтобы можно было указать адрес и порт для прослушивания.