Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/02/2012, à 12:47

KRS

[résolu]caractère espace différent de espace (espace insécable)

Un titre mystérieux que je vais tenter d'expliquer, car pour moi ça reste mystérieux.
Je suis débutant en développement et je suivais un guide Rails lorsque je me suis cassé les dents sur une erreur, après des heures à tout vérifier, je suis tombé par hasard sur le problème :

Un espace dans un fichier provoquait l'erreur. Le fait d'effacer cet espace et de le remettre (avec la touche ... espace) résout le problème.  Si je fait un undo pour remettre l'ancien espace, l'erreur se reproduit.

j'ai donc 2 syntaxes visuellement identiques dans mon éditeur (gedit) mais elles sont différentes pour le programme.

pour illustrer, voici un diff de la ligne incriminée :

diff _form.html.erb _form.html.erb.ok 
4c4
<         <%= tag_form.text_field :name %>
---
>         <%= tag_form.text_field :name %>

c'est l'espace entre "<%" et  "tag_form" qui pose problème, on ne le voit pas à l'oeil nu, mais diff le détecte.

Quelqu'un as t il une explication à celà?  j'ignore comment j'ai pu générer cet espace maudit...


Edit : j'ai trouvé la différence entre ces 2 espaces, l'un est un espace majuscule et l'autre un espace minuscule.  Soit touche espace ou maj+touche espace ...   il y a t il une utilité à ça ou on peut considérer que c'est un bug?

Dernière modification par KRS (Le 01/03/2012, à 10:41)

Hors ligne

#2 Le 29/02/2012, à 13:07

pingouinux

Re : [résolu]caractère espace différent de espace (espace insécable)

Bonjour,
Pour voir ce que contient la ligne 4 de chacun des 2 fichiers :

sed -n '4p' _form.html.erb | xxd
sed -n '4p' _form.html.erb.ok | xxd

Hors ligne

#3 Le 29/02/2012, à 14:01

KRS

Re : [résolu]caractère espace différent de espace (espace insécable)

sed ne me met rien de spécial en valeur :

sed -n '4p' _form.html.erb_fail 
        <%= tag_form.text_field :name %>
sed -n '4p' _form.html.erb
        <%= tag_form.text_field :name %>

Hors ligne

#4 Le 29/02/2012, à 14:06

pingouinux

Re : [résolu]caractère espace différent de espace (espace insécable)

Il faut mettre la commande complète, avec le xxd final.

Hors ligne

#5 Le 29/02/2012, à 14:11

KRS

Re : [résolu]caractère espace différent de espace (espace insécable)

pardon, pas fait attention, voilà :

 sed -n '4p' _form.html.erb_fail | xxd
0000000: 0909 3c25 3dc2 a074 6167 5f66 6f72 6d2e  ..<%=..tag_form.
0000010: 7465 7874 5f66 6965 6c64 203a 6e61 6d65  text_field :name
0000020: 2025 3e0a                                 %>.
sed -n '4p' _form.html.erb | xxd
0000000: 0909 3c25 3d20 7461 675f 666f 726d 2e74  ..<%= tag_form.t
0000010: 6578 745f 6669 656c 6420 3a6e 616d 6520  ext_field :name 
0000020: 253e 0a                                  %>.

Hors ligne

#6 Le 29/02/2012, à 14:15

pingouinux

Re : [résolu]caractère espace différent de espace (espace insécable)

Il s'agit de ce caractère : <U00A0>     /xc2/xa0     NO-BREAK SPACE (espace insécable)

Hors ligne

#7 Le 29/02/2012, à 14:15

sputnick

Re : [résolu]caractère espace différent de espace (espace insécable)

Ne s'agirais t-il pas d'un espace insécable ?


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#8 Le 29/02/2012, à 14:25

KRS

Re : [résolu]caractère espace différent de espace (espace insécable)

oui c'est bien ça, j'ai du le taper en gardant la majuscule enfoncée après le =  (clavier CH_FR)  Bon à savoir, je pense que ça vas sûrement encore m'arriver.

Dernière modification par KRS (Le 01/03/2012, à 10:02)

Hors ligne

#9 Le 01/03/2012, à 01:01

HP

Re : [résolu]caractère espace différent de espace (espace insécable)

Emacs, lui, au moins, il met les espaces insécables en évidence…


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#10 Le 01/03/2012, à 10:40

KRS

Re : [résolu]caractère espace différent de espace (espace insécable)

en installant le paquet Gedit-plugins  j'ai trouvé le plugin Draw spaces (indicateur d'espaces en français) qui, en le configurant, permet de mettre en évidence les espaces insécables.
Problème résolu, merci à tous de votre aide.

Hors ligne