Bonjour tout le monde!
J’ai le problème suivant: je peuple ma base dans une migration et pour
certains des objets à créer, les chaines de caractères sont
accentuées.Et rake db:migrate gueule, parce que ruby hurle qu’il y a un
problème de syntaxe. Sans les accents dans les chaines, pas de soucis
aucun.
Je précise au cas où que le problème de syntaxe ne se pose pas
systématiquement. Il semble que cela soit lié à la position du caractère
accentué dans la chaine et de sa longueur (genre pb d’utf-8 ???)
Exemple qui pose problème:
–8<–
def self.up
@cert1 = CategoryExternalReferenceType.new :label => “un_é”
@cert2 = CategoryExternalReferenceType.new :label => “outch”
end
–8<–
Le même exemple qui ne pose pas de problème:
–8<–
def self.up
@cert1 = CategoryExternalReferenceType.new :label => “un_e”
@cert2 = CategoryExternalReferenceType.new :label => “outch”
end
–8<–
L’erreur (qui pointe sur la seconde ligne “outch”) :
–8<–
./db/migrate//010_add_category_samples.rb:26: syntax error, unexpected
tIDENTIFIER, expecting kEND
@cert2 = CategoryExternalReferenceType.new :label => “outch”
^
./db/migrate//010_add_category_samples.rb:26: unterminated string meets
end of file
./db/migrate//010_add_category_samples.rb:26: syntax error, unexpected
$end, expecting kEND
–8<–
Avez-vous une idée de la source de mon soucis, voire une idée de
comment le résoudre ?
Merci par avance!
Georges
Je précise mes versions:
–8<–
Ruby version 1.8.6 (i686-linux)
RubyGems version 0.9.4
Rails version 2.0.2
Active Record version 2.0.2
Action Pack version 2.0.2
Active Resource version 2.0.2
Action Mailer version 2.0.2
Active Support version 2.0.2
Application root /home/somewhere/
Environment development
Database adapter mysql
Database schema version 10
–8<–
Question bête : l’éditeur de code il enregistre en UTF-8 ?
–
IciMarché fédère l’e-commerce de proximité
http://icimarche.fr
Question bête : l’éditeur de code il enregistre en UTF-8 ?
Non, en fait, c’est un code généré en perl à partir de fichiers textes
(ascii 8bit).
J’ai trouvé le moyen de contourner mon problème en escapant les
caractères accentués (ex: “détail” -> “d\xE9tail”).
Georges
Le 26 mai 2008 11:07, Georges G. a écrit :
Question bête : l’éditeur de code il enregistre en UTF-8 ?
Non, en fait, c’est un code généré en perl à partir de fichiers textes
(ascii 8bit).
Alors il faudrait peut-être que ton programme Perl convertisse
tes données de latin-{1,9} vers UTF-8, via Text::Iconv par exemple.
J’ai trouvé le moyen de contourner mon problème en escapant les
caractères accentués (ex: “détail” → “d\xE9tail”).
– Jean-François.
–
http://twitter.com/underflow_
Bonjour,
Je suppose que tes fichiers sources sont encoder en utf-8 ?
Si c’est le cas peut tu essayer enregistrer ton fichier en utf8 sans
BOM (Byte Order Mark)
Le BOM est en fait un marqueur en début de fichier pour signaler un
fichier encodé en utf-8
J’ai le même problème avec les fichiers sources contenant un BOM. Si
quelqu’un pouvais confirmer ou donner un début d’explication 
On 26 mai, 10:06, Georges G. [email protected]