Django-fr

Forum

#1 25-04-2013 10:03:44

sesame
Membre
Inscription : 22-03-2011
Messages : 263

encodage de caracteres

bonjour

dans mon model , j'ai un probleme avec les accents

si j'ecris

PHYSICS_CHOICES = (
    ('Mecanique', (
            ('dureté Vickers___', 'dureté Vickers___'),
            ('striction', 'striction'),
.......

alors je recupere l'erreur SyntaxError: Non-ASCII character '\xe9'

cela vient il de l'editeur ?

j'utilise idle

Hors ligne

#2 25-04-2013 10:30:01

Ssx`z
Membre
Inscription : 13-04-2013
Messages : 8

Re : encodage de caracteres

Bonjour,

Cela vient du fait que vous avez un accent dans la chaine de caractères 'dureté Vickers___'. Pour régler ce soucis, il faut préciser à l'interpréteur que vous voulez utiliser l'encodage utf8 en plaçant en tout début de fichier la ligne suivante :

# -*- coding:utf-8 -*-

Hors ligne

#3 25-04-2013 10:44:14

sesame
Membre
Inscription : 22-03-2011
Messages : 263

Re : encodage de caracteres

c'est ce que j'ai fait

j'ai mis en haut de la page  #-*- coding:Utf-8 -*-

mais dans l'admin quand j'essaie d'enregistrer ca sort en rouge

La valeur « u'duret\xe9 Vickers___' » n'est pas un choix valide.

Hors ligne

#4 25-04-2013 11:04:56

Ssx`z
Membre
Inscription : 13-04-2013
Messages : 8

Re : encodage de caracteres

Est-ce que vous avez également précisé dans le fichier admin.py (si vous en avez un) que vous souhaitez être en utf8 ?

Hors ligne

#5 25-04-2013 11:29:17

sesame
Membre
Inscription : 22-03-2011
Messages : 263

Re : encodage de caracteres

oui

peut etre aussi a faire avec setting ?

Hors ligne

#6 25-04-2013 12:52:26

Ssx`z
Membre
Inscription : 13-04-2013
Messages : 8

Re : encodage de caracteres

Au hasard, préfixez la chaine 'dureté...' dans votre models par un u :

  (u'dureté Vickers___', u'dureté Vickers___'),

... afin d'indiquer qu'il faut absolument passer cette chaine en unicode.

Hors ligne

#7 25-04-2013 13:31:13

sesame
Membre
Inscription : 22-03-2011
Messages : 263

Re : encodage de caracteres

cette fois avec le u devant ca marche

j'ai plus le message d'erreur...

merci beaucoup de votre aide

Hors ligne

#8 25-04-2013 14:03:59

sesame
Membre
Inscription : 22-03-2011
Messages : 263

Re : encodage de caracteres

maintenant c'est dans le template...

si j'ecris

case 1 : var text = new Array("dureté Vickers___","mod elasticite___","module de Young__","coefft de poisson");

le é de dureté est pas decodé....

j'ai pourtant mis <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

dans le head

Hors ligne

#9 25-04-2013 15:11:57

Ssx`z
Membre
Inscription : 13-04-2013
Messages : 8

Re : encodage de caracteres

D'abord, pourquoi n'utilisez vous pas le même tuple qu'en Python, en le passant à votre template (vous l'importez dans votre vue et vous le passez au moment du rendu). Ainsi avec une boucle {% for %}, il y a moyen d'éviter la redondance que vous avez crée ici avec votre bout de code JS.

Ensuite pour votre problème d'encodage : vérifiez celui de votre éditeur, et si la méthode avec le tuple marche.

Hors ligne

#10 26-04-2013 06:29:34

sesame
Membre
Inscription : 22-03-2011
Messages : 263

Re : encodage de caracteres

oui mon editeur est pas configuré utf8  ca doit etre la raison

j'ai du mal a comprendre "le même tuple"

dans mon template j'ai des listes deroulantes liees qui font partie d'un formulaire

j'envoie ma requete pour faire une recherche par filtrage des materiaux

ex: je recherche les materaiux dont la propriete est la durete vickers variant entre 45 GPa et 85 GPa dans la plage de temperature  40-100 degres

Hors ligne

Pied de page des forums