2010-11-21 24 views
0

Puisqu'il existe plusieurs façons de coder des chaînes non-ASCII - Django ORM fait-il un effort pour normaliser l'encodage, ou dois-je le faire moi-même?Est-ce que les ORM django (ou les bases de données ou les navigateurs Web) normalisent les encodages de chaînes pour le stockage/la soumission?

Ou la base de données fera-t-elle cela? Que diriez-vous des navigateurs Web?

Je voudrais m'assurer que les chaînes sont trouvables indépendamment de la forme de normalisation de l'entrée d'origine, et permettre la chaîne correspondante entrée par différentes méthodes - par ex. Web, ligne de commande, etc.

Merci.

Répondre

0

Si vous effectuez une recherche dans votre base de données, cela dépendra de votre encodage et de votre classement. Généralement, la base de données est assez bonne pour cacher les détails de votre situation.

Si vous acceptez les caractères Unicode, vous devrez faire un petit effort pour vous assurer qu'ils ne sont pas décodés comme accidentellement. Ceci est normalement facile en supposant que vous êtes toujours à partir d'une position Unicode.

Dans les chaînes unicode python commencent par un « u »:

my_str = u'Hey, a unicode thing' 

En ce qui concerne Django, aussi longtemps que les choses restent unicode tout le chemin il n'y a pas de problèmes.

+0

En fait, ces deux chaînes Unicode ont un contenu équivalent, mais ne sont pas les mêmes que '\ xeatre' et 'ue302tre', j'aimerais pouvoir trouver les deux, peu importe comment les utilisateurs entrent l'entrée. – Evgeny