2010-11-21 4 views
0

Da es mehrere Möglichkeiten gibt, nicht-ASCII-Strings zu kodieren - unternimmt Django ORM irgendwelche Anstrengungen, um die Kodierung zu normalisieren, oder muss ich es selbst tun?Dojango ORM (oder Datenbanken oder Webbrowser) normalisieren Zeichenkodierungen für Speicherung/Übermittlung?

Oder wird Datenbank das tun? Wie wäre es mit Webbrowsern?

Ich möchte sicherstellen, dass Strings unabhängig von Normalisierung Form der ursprünglichen Eingabe gefunden werden können, und ermöglichen übereinstimmende Zeichenfolge durch verschiedene Methoden eingegeben - z. Web, Befehlszeile usw.

Danke.

Antwort

0

Wenn Sie in Ihrer Datenbank suchen, hängt dies von Ihrer Codierung und Sortierung ab. Im Allgemeinen ist die Datenbank ziemlich gut darin, die Details davon vor dir zu verstecken.

Wenn Sie Unicode-Zeichen akzeptieren, müssen Sie einige kleine Anstrengungen unternehmen, um sicherzustellen, dass sie nicht versehentlich als ASCII dekodiert werden. Dies ist normalerweise einfach, wenn Sie immer von einer Unicode-Position ausgehen.

In Python beginnen Unicode-Strings mit einem 'u':

my_str = u'Hey, a unicode thing' 

Soweit Django betrifft, solange die Dinge Unicode die gesamte Art und Weise gibt es keine Probleme bleiben.

+0

Eigentlich diese beiden Unicode-Strings haben gleichwertigen Inhalt, aber sind nicht das gleiche u '\ xeatre' und ue \ u0302tre ', ich möchte in der Lage sein, beide zu finden, unabhängig davon, wie Benutzer die Eingabe eingeben. – Evgeny

Verwandte Themen