2012-12-29 11 views
49

Próbuję zmienić python3. Domyślne jest kodowanie UTF8. Czy nadal powinienem używać deklaracji kodowania na początku każdego pliku?Czy powinienem używać deklaracji kodowania w Python3?

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

Domyślnie * za co *? – delnan

+0

Założenia języka python. –

+0

To oczywiste. Chodzi mi o to, w jakim celu zakłada się kodowanie UTF-8? Istnieje mnóstwo miejsc, w których powstaje pytanie o kodowanie: pliki I/O, sieci, inne wejścia/wyjścia, kod źródłowy, wiele struktur danych w pamięci itp. – delnan

Odpowiedz

51

Ponieważ domyślnym jest UTF-8, trzeba tylko użyć tego oświadczenia, jeśli odbiegają od domyślnego lub jeśli opierają się na innych narzędzi (jak IDE lub edytor tekstu) do wykorzystania te informacje.

Innymi słowy, jeśli chodzi o Python, tylko wtedy, gdy chcemy zastosować kodowanie, które jest inne, należy użyć tej deklaracji.

Należy pamiętać, że dotyczy to tylko tego, w jaki sposób Python odczytuje kod źródłowy. Nie dotyczy drukowania, otwierania plików ani innych operacji we/wy. Aby uzyskać więcej informacji na temat Pythona, Unicode i kodowania, gorąco zachęcam do przeczytania Python Unicode HOWTO lub bardzo dokładnego Pragmatic Unicode talk autorstwa Neda Batcheldera.

+19

"# - * - kodowanie: utf-8 - * -" może być nadal przydatne dla niektórych edytorów do przełączania się na oczekiwane kodowanie podczas edycji pliku źródłowego. – pepr

+0

@pepr Znak zamówienia Byte mógłby zrobić to samo, nie? – endolith

+1

@endolith: BOM UTF-8 jest obrzydliwością na tej ziemi, wyprodukowanym przez Microsoft .. Zobacz https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8 –

Powiązane problemy