problème de jeu de caractère

Bonjour,

Je rencontre un problème avec Ruby on Rails et ce n’est pas la première
fois.

J’enregistre tous mes fichiers en utf-8 avec Scite. J’ai abandonné
notepad++ que je croyais coupable de mon souci.

Pour une raison mystérieuse, il semble que des caractères invisibles se
glissent dans le fichier si par malheur Scite le charge dans un autre
encodage que UTF-8, et c’est ensuite irréversible. Je me retrouve devant
l’erreur :

lib/fight.rb:16: syntax error, unexpected kEND, expecting $end

Si je retappe EXACTEMENT le même code, dans un fichier tout neuf créé et
sauvé en UTF-8 dès le début, je n’ai plus d’erreur. C’est exactement le
même code, à la virgule près. En revanche, ctrl+A et un copié / collé
dans un nouveau fichier re génère la même erreur.

Quelqu’un a déjà rencontré ce problème ? Aurait une solution ? Et
surtout une méthode pour éviter définitivement ce problème.

Le 27 mai 09 à 12:28, Lily B. a écrit :

se
le
même code, à la virgule près. En revanche, ctrl+A et un copié / collé
dans un nouveau fichier re génère la même erreur.

Quelqu’un a déjà rencontré ce problème ? Aurait une solution ? Et
surtout une méthode pour éviter définitivement ce problème.

Iconv ? pour transformer l’encodage de ton fichier ?


Cyril M.

Je peux déjà choisir l’encodage avec Scite et notepad++, et j’ai essayé
de convertir aussi avec kaboom.
Est-ce qu’iconv ferait quelque chose de plus ?

Bon, il se trouve que j’ai réussi à récupérer mon fichier en repassant Ã
notepad++ et en lui demandant de reconvertir le fichier en UTF-8 sans
BOM (la même manip ne fonctionnait pas sous Scite). Je suis quand même
preneuse si quelqu’un connaît l’explication de ce problème… ça
m’aiderait à l’éviter par la suite.

Lily B. a écrit :

Je peux déjà choisir l’encodage avec Scite et notepad++, et j’ai essayé
de convertir aussi avec kaboom.
Est-ce qu’iconv ferait quelque chose de plus ?

Bon, il se trouve que j’ai réussi à récupérer mon fichier en repassant Ã
notepad++ et en lui demandant de reconvertir le fichier en UTF-8 sans
BOM (la même manip ne fonctionnait pas sous Scite). Je suis quand même
preneuse si quelqu’un connaît l’explication de ce problème… ça
m’aiderait à l’éviter par la suite.

Le BOM est une série de caractères en tout début de fichier qui indique
explicitement que celui-ci est en Unicode.

Par contre j’en ai jamais vu l’utilité, et pas mal de trucs foirent Ã
cause de ca, donc en gros à ne pas utiliser (à moins que quelqu’un
puisse m’éclairer sur son utilité ?).

Les charsets, c’est comme les TimeZones, c’est la plaie. Tout ce qui
est fait pour permettre aux gens de communiquer entre eux quand ils
sont tous différents, c’est la plaie.

Je ne crois pas que ton problème soit lié à du code et encore moins à
rails.
Il faut juste que tu fasse gaffe à l’encodage que tu utilise avec ton
(tes) éditeur(s) de texte. Il y en a qui gère ça plus ou moins bien,
mais je n’ai aucun référence à te donner : personnellement je les
trouve tous pourris.

En règle générale :

  • Essaye de trouver une préférence dans les configurations de ton
    éditeur pour le forcer à toujours utiliser un encodage précis.
  • Essaye d’utiliser partout ce même encodage.
  • Essaye d’éviter le copier-coller entre des fichiers d’encodage
    différent (ça ne devrait pas poser de problèmes, mais on ne sait
    jamais, avec certains OS et éditeurs…)

Et surtout : bon courage :slight_smile:


Stéphane Akkaoui
http://imeuble.info

Le 27 mai 09 à 14:09, Lily B. a écrit :