2013-03-08 26 views
8

Tôi thường sử dụng sau đây để nhanh chóng cháy lên một máy chủ web để phục vụ nội dung HTML từ thư mục hiện hành (đối với thử nghiệm địa phương):Tôi làm cách nào để phân phối các tệp có mã hóa UTF-8 bằng Python SimpleHTTPServer?

python -m SimpleHTTPServer 8000 

Có cách nào hợp lý đơn giản tôi có thể làm điều này, nhưng có máy chủ phục vụ các tệp có mã hóa UTF-8 thay vì mặc định của hệ thống?

+1

là mã hóa được SimpleHTTPServer thay đổi? Là đơn giản, tôi sẽ giả sử nó phục vụ các byte như là. – monkut

+1

Bạn nói đúng: đó không phải là mã hóa tệp, tôi đã thiếu thẻ meta charset trong HTML. Cảm ơn đã giúp tôi đi đúng hướng! –

+0

Bạn không chắc chắn nên làm gì với câu hỏi này ngay bây giờ — hãy xóa nó? –

Trả lời

13

Có cùng sự cố, mã sau đây đã hoạt động đối với tôi.

Để khởi động SimpleHTTPServer với mã hóa UTF-8, chỉ cần sao chép/dán phần sau vào thiết bị đầu cuối.

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

Đảm bảo rằng bạn có bộ ký tự chính xác trong các tệp HTML của mình trước đó.

+0

Trong ví dụ này, làm cách nào để thay đổi cổng máy chủ? – Gurzo

+0

@Gurzo Chỉ cần thêm portnumber làm đối số cho lệnh python. Giống như 'python -c" import ... "1234' để chạy nó trên cổng 1234. – oligofren

+0

Tôi đã có cùng một vấn đề. Không thể lấy mã hoạt động, nhưng thêm đã sửa các ký tự. – David

Các vấn đề liên quan