2013-03-08 8 views
8

Mi capita spesso di utilizzare il seguente per sparare rapidamente un server web per servire contenuto HTML dalla cartella corrente (per i test locale):Come posso fornire file con codifica UTF-8 usando Python SimpleHTTerver?

python -m SimpleHTTPServer 8000 

C'è un modo ragionevolmente semplice che posso fare questo, ma che il server servire i file con una codifica UTF-8 piuttosto che l'impostazione predefinita del sistema?

+1

è la codifica modificata da SimpleHTTerver? Essendo semplice, suppongo che serva i byte così come sono. – monkut

+1

Hai ragione: non era la codifica del file, mi mancava il meta tag charset nell'HTML. Grazie per avermi fatto sulla strada giusta! –

+0

Non sei abbastanza sicuro di cosa fare con questa domanda ora però-cancellala? –

risposta

13

Aveva lo stesso problema, il codice seguente ha funzionato per me.

Per avviare un SimpleHTTPServer con codifica UTF-8, è sufficiente copiare/incollare quanto segue nel terminale.

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

Assicurarsi di avere il set di caratteri corretto nei file HTML in anticipo.

+0

In questo esempio, come posso cambiare la porta del server? – Gurzo

+0

@Gurzo Basta aggiungere il numero di porta come argomento al comando python. Come "python -c" import ... "1234' per eseguirlo sulla porta 1234. – oligofren

+0

Ho avuto lo stesso problema. Impossibile far funzionare il codice, ma aggiungendo risolti i caratteri. – David

Problemi correlati