Korrekte Art, Python-Quellcode-Kodierung zu definieren
PEP 263 definiert, wie definieren Python-source-code-Codierung.
Normal, die ersten 2 Zeilen einer Python-Datei sollte beginnen mit:
#!/usr/bin/python
# -*- coding: <encoding name> -*-
Aber ich habe gesehen, eine Menge von Dateien, beginnend mit:
#!/usr/bin/python
# -*- encoding: <encoding name> -*-
-> Codierung statt Codierung.
Also, was ist der richtige Weg, deklarieren Sie die Datei-Codierung ?
Ist Codierung zulässig, da der regex verwendet, der faul ist ? Oder ist es nur eine andere form der Deklaration der Datei-Codierung ?
Ich Stelle diese Frage, weil die PEP nicht zu reden Codierung es nur Gespräche über Codierung.
InformationsquelleAutor der Frage Oli | 2009-04-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen Sie die docs hier:
"Wenn ein Kommentar in der ersten oder zweiten Zeile des Python-Skripts angegebenen regulären Ausdruck entspricht
coding[=:]\s*([-\w.]+)
dieser Kommentar verarbeitet wird, als eine encoding-Deklaration""Die empfohlenen Formen dieses Ausdrucks sind
ist auch anerkannt von GNU Emacs und
die anerkannt wird von Bram Moolenaar ist VIM."
So, kann man so ziemlich alles, was vor der "Codierung" - Teil, aber halten Sie "Codierung" (ohne Präfix), wenn Sie wollen, zu 100% python-docs-Empfehlung-kompatibel.
Genauer gesagt, Sie müssen verwenden, was von ihm erkannt wird Python und die spezifische Bearbeitung software, die Sie verwenden (wenn es benötigt/akzeptiert, was bei allen). E. g. die
coding
form erkannt wird (out of the box) von GNU Emacs, nicht aber Vim (ja, ohne Allgemeine Zustimmung, es ist im wesentlichen eine Rasen Krieg).InformationsquelleAutor der Antwort Rafał Dowgird
PEP 263:
Offensichtlich "deKodierung: UTF-8 - Spiele".
PEP bietet einige Beispiele:
InformationsquelleAutor der Antwort vartec
Nur kopieren und einfügen unter Anweisung oben auf dem Programm.Es löst Zeichencodierung Probleme
InformationsquelleAutor der Antwort Harun ERGUL
Wenn ich mich nicht Irre, der ursprüngliche Vorschlag für die Quelle-Datei-Codierungen war, einen regulären Ausdruck zu verwenden, für die ersten paar Zeilen, die es erlauben würde, beide.
Denke ich, dass der regex war etwas entlang der Linien von
coding:
gefolgt von etwas.Fand ich dies: http://www.python.org/dev/peps/pep-0263/
Das ist der ursprüngliche Vorschlag, aber ich kann nicht scheinen zu finden, die endgültige Skillung, die besagt genau das, was Sie Taten.
Ich habe sicherlich verwendet
encoding:
mit großer Wirkung, so offensichtlich, dass das funktioniert.Versuchen Sie, etwas völlig anderes, wie
duhcoding: ...
zu sehen, ob das genauso gut funktioniert.InformationsquelleAutor der Antwort Lasse Vågsæther Karlsen
Ich vermute, es ist ähnlich wie Ruby - Methode ist okay.
Dies ist vor allem, weil verschiedene text-Editoren mit unterschiedlichen Methoden (also diese zwei) Kennzeichnung Kodierung.
Mit Ruby, so lange wie der erste, oder zweite, wenn es eine shebang-Zeile enthält eine Zeichenfolge, die passt:
und ignoriert alle Leerzeichen und andere Flusen auf diesen Linien. (Es kann oft ein = statt :).
InformationsquelleAutor der Antwort Matthew Schinckel