2012-12-29 12 views
49

Sto provando a cambiare python3. Credo che ci sia la codifica utf8 di default. Dovrei comunque utilizzare la dichiarazione di codifica all'inizio di ogni file?Devo usare la dichiarazione di codifica in Python3?

# -*- coding: utf-8 -*- 
+0

Per impostazione predefinita * per che cosa *? – delnan

+0

Presupposto linguaggio python. –

+0

Questo è ovvio. Voglio dire, per quale motivo pensi che la codifica UTF-8 sia assunta? Ci sono un sacco di posti in cui si pone la questione della codifica: I/O di file, networking, altro I/O, codice sorgente, numerose strutture dati in memoria, ecc. – delnan

risposta

51

Perché il default è UTF-8, è sufficiente utilizzare tale dichiarazione in caso di deviazione dal default, o se si basano su altri strumenti (come il vostro IDE o editor di testo) di fare uso di quell'informazione.

In altre parole, per quanto riguarda Python, solo quando si desidera utilizzare una codifica diversa è necessario utilizzare tale dichiarazione.

Si noti che si applica solo a come Python legge il codice sorgente. Non si applica alla stampa, all'apertura di file o ad altre operazioni di I/O. Per ulteriori dettagli su Python, Unicode e codifiche, ti invito vivamente a leggere lo Python Unicode HOWTO o l'accurato Pragmatic Unicode talk di Ned Batchelder.

+19

La codifica '# - *: utf-8 - * -' può ancora essere utile per alcuni editor per passare alla codifica prevista quando si modifica il file sorgente. – pepr

+0

@pepr Un segno di ordine byte potrebbe fare lo stesso, no? – endolith

+1

@endolith: il BOM UTF-8 è un abominio su questa terra prodotto da Microsoft. Vedi https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8 –