Wie lautet das U-Präfix in einer Python-Zeichenfolge?
Wie in:
u'Hello'
Meine Vermutung ist, dass es zeigt, "Unicode", ist das korrekt?
Wenn ja, seit Wann ist es verfügbar?
InformationsquelleAutor der Frage OscarRyz | 2010-03-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du hast Recht, siehe 3.1.3. Unicode-Zeichenfolgen.
Es wurde die syntax seit Python 2.0.
InformationsquelleAutor der Antwort Stefan Kendall
U in
u'Some String'
bedeutet, dass Ihr string ist ein Unicode-string.Q: ich bin in einer schrecklichen, schrecklich beeilen Sie sich und dann landete ich hier aus der Google-Suche. Ich bin versucht, zu schreiben diese Daten in eine Datei, ich erhalte eine Fehlermeldung, und ich brauche die Toten einfachste, wohl fehlerhaft, die Lösung dieser zweiten.
A: Sie sollten wirklich Lesen Joel Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) essay über Zeichensätze.
Q: sry keine Zeit code pls
A: In Ordnung. versuchen
str('Some String')
oder'Some String'.encode('ascii', 'ignore')
. Aber Sie sollten wirklich Lesen Sie einige der Antworten und Diskussion über Konvertieren Unicode-string und diese exzellente, exzellente, primer auf die Zeichenkodierung.InformationsquelleAutor der Antwort Andrew
Ja.
Python-2.x.
In Python 3.x die strings standardmäßig im Unicode-Format und es gibt keine Notwendigkeit für die
u
Präfix. Hinweis: in Python 3.0-3.2, u ist ein syntax Fehler. In Python 3.3+ es ist wieder legal zu machen, es einfacher zu schreiben 2/3 kompatiblen apps.InformationsquelleAutor der Antwort kennytm
Sollte Folgendes helfen:
http://docs.python.org/library/functions.html#unicode
http://www.amk.ca/python/howto/unicode (springe zu "Python-Unicode-Unterstützung", wenn Sie bereits vertraut mit den Unicode-Prinzipien)
InformationsquelleAutor der Antwort Brian Luft
Alle Saiten bedeutete für den Menschen sollte die Verwendung von u"".
Fand ich, dass die folgende Denkweise hilft viel, wenn der Umgang mit Python-strings: Alle Python manifestieren sollten strings verwenden Sie die
u""
syntax. Die""
syntax ist für byte-arrays, nur.Bevor das bashing beginnt, lassen Sie mich erklären. Die meisten Python-Programme zu starten mit
""
für Streicher. Aber dann müssen Sie support-Dokumentation aus dem Internet, so beginnen Sie mit"".decode
und alle von einer plötzlichen, Sie werden immer Ausnahmen überall zu Dekodieren dies und das - alles, weil der Einsatz von""
für Streicher. In diesem Fall, Unicode handeln, wie ein virus und wird Unheil anrichten.Aber, wenn Sie Folgen, meinen Sie in der Regel nicht diese Infektion haben (weil Sie bereits infiziert sein).
InformationsquelleAutor der Antwort Frank Krueger
Ist es Unicode.
Setzen Sie einfach die variable zwischen
str()
und es funktioniert gut.Aber im Falle Sie haben zwei Listen, wie die folgenden:
Wenn Sie das Kontrollkästchen
set(a)==set(b)
wird es kommen, wie Falsch, aber wenn du gehen Sie wie folgt vor:Nun, das Ergebnis True.
InformationsquelleAutor der Antwort user3251882
Ich bin hierher gekommen, weil ich hatte lustiges-char-Syndrom auf meine
requests
Ausgabe. Ich dachteresponse.text
würde mir ein richtig dekodiert string, aber in der Ausgabe, die ich lustig fand double-chars, wo Deutsche Umlaute gewesen sein sollte.Stellt sich heraus
response.encoding
war irgendwie leer und so habe die Antwort nicht wissen, wie Sie richtig zu entschlüsseln, den Inhalt und nur behandelt es als ASCII (denke ich).Meine Lösung war, die roh-bytes mit 'Antwort.Inhalt' und manuell anwenden
decode('utf_8')
. Das Ergebnis war schöne Umlaute.Korrekt dekodiert
vs. falsch decodiert
InformationsquelleAutor der Antwort Chris