Qu'est-ce que cette FOLLE caractère d'espace??? (google chrome)
Cette conduite est moi absolument, !&&%&$ fou... il défie tout ce que je peux penser.
CE personnage ici... " "
Entre ces guillemets... ouvrez google chrome et de les inspecter. Vous pourrez voir sa un
... normale? Maintenant, cliquez droit et en fait voir la source de ce débordement de pile de la page. C'est un espace normal... (d'ailleurs, le personnage que j'ai copié est un espace réel).
Je pourrais comprendre si c'est une sorte d'éditeur de texte riche ou quelque chose, mais dans la source html brut est un espace normal, donc, ce qui donne?
Ici, avec frapper la touche espace (qui fonctionne très bien)... " "
.
Vous pouvez même le copier et le coller partout et faire des ravages et de faire chrome mis
partout. Même si ce qui est copié dans votre presse-papiers est juste un ESPACE.
J'ai ces stupides personnages apparaissent partout au hasard dans mon site web et je n'ai aucune idée d'où ils viennent, ni POURQUOI google est la conversion d'un ESPACE dans un nbsp;
J'ai essayé de l'inspection de l'effectif de code de caractères et il est un habitué de l'espace de toutes les choses que je peux trouver...
Chaque seule méthode que j'ai essayer le montre comme un espace NORMAL... donc, ce qui donne?
Si j'utilise ruby et ne " ".ord
- je obtenir 32
. Si je le fais avec la brisure de l'espace, j'ai également obtenir 32
.
S'il vous plaît aidez-moi im perdre mon esprit.
modifier: vous pouvez le prouver... voir la source sur cette page et vous verrez deux vide " "
comme d'habitude. Maintenant, regardez dans la console et seulement l'un sera un
, mais la source brut est identique.
De l'Image pour les personnes n'utilisant pas de chrome (c'est en regardant ce très post via google chrome dev tools):
Voici le code HTML du même texte que vous voyez lorsque vous affichez la source... non nbsp être trouvé.
- Quand vous dites "copier-coller", êtes-vous copier-coller à partir de la fenêtre du navigateur ou les outils de développement F12? Il copie à partir de la fenêtre du navigateur de l'amende. Et si vous copiez du HTML brut, importe-t-il si le navigateur est allé et l'a converti en
nbsp;
? Il rend le même. - Si je regarde dans le HTML, il n'est pas dans la source. regarder dans le code HTML de ce fil et il va apparaître comme un espace normal. Ainsi, dans le html brut est de deux ESPACES, mais dans la console, l'un d'eux est un nbsp
- Peut-être que cela a à voir avec votre IDE? Bizarre peluchage programmes peuvent causer des subtiles différences inattendues. Quelle est la source brut ressembler? Ou est
nbsp;
seulement dans l'inspecteur? - C'est chrome 38.0.2125.122, et l'image que vous voyez à partir de mon post original est en chrome dev tools. J'utilise vim, bien que ce ne devrais pas le sujet, car une fois sa dans le presse-papiers vous pouvez copier et coller d'autres lieux et déclencher chrome pour mettre un nbsp (c'est comment je l'ai eu dans mon DONC, la question du corps du texte). Si vous affichez la source dans le code HTML de cette page, vous verrez elle n'est pas dans la source, mais il s'affiche dans chrome dev tools
- Quand j'ai vue la source de cette question, je reçois
" "
. 
est un no-break space caractère. Je ne sais pas pourquoi je suis de voir quelque chose de différent. - Le compoundage de google Chrome UX crimes, lorsque vous inspectez la première
" "
et il montre" "
si vous faites un clic droit | Modifier le texte il se transforme en" "
! Pas la possibilité de venir nettoyer et faire la bonne chose et de montrer" "
. Parce que l'Unicode n'est pas assez dur. - L'envoi du texte avant de l'en-tête HTTP peut également provoquer ce problème.
Vous devez vous connecter pour publier un commentaire.
Quand j'ai vue cette source de la page dans Internet Explorer, ou de le télécharger directement à partir du serveur et de l'afficher dans un éditeur de texte, le premier caractère d'espace en question est formaté comme ceci dans le HTML:
Avis de la
 
entité. C'est de l'Unicode codepointU+00A0 NO-BREAK SPACE
. Chrome est juste d'être gentil et de re-formater en tant que
lors de l'inspection du HTML. Mais ne vous méprenez pas, c'est un véritable espace de non-rupture, et non Unicode codepointU+0020 SPACE
comme vous vous attendez.U+00A0
est visuellement affiché de la même manièreU+0020
, mais ils sont sémantiquement différents personnages.Le deuxième caractère d'espace en question est formaté comme ceci dans le HTML:
De sorte qu'il est Unicode codepoint
U+0020
et pasU+00A0
. L'affichage de la crue des données hexadécimales de cette page confirme que:<scare quotes>
nice</scare quotes>
et re-formater en tant que ". Je suis sentiment refoulé.Il s'avère que les deux apparemment identiques, les espaces ne sont pas le même caractère.
Voici:
JSFiddle
typedSpace.charCodeAt(0)
retourne 32, le 
de l'espace classique. Alors quecopiedSpace.charCodeAt(0)
retourne 160, la 
AKA
caractère.La différence entre les deux est que tout un tas de
 
répété après l'un de l'autre et leur sol et de créer plus d'espace entre eux, alors que tout un tas d'répété 
personnages vont s'écraser en un seul espace.Par exemple:
A       B
résultats: Une BA       B
résultats: Une BPour convertir le
 
personnage avec un 
caractère dans une chaîne, essayez ceci:De la population dans l'avenir, comme moi, qui avait de débogage à partir d'un haut niveau tout le chemin vers le bas pour les codes de caractère, je vous salue.
C'est un espace insécable.
est l'entité utilisée pour représenter un espace insécable. C'est essentiellement un espace standard, la principale différence étant que le navigateur ne doit pas se briser (ou enveloppe) une ligne de texte au point que cette
occupe.Plus probable que le caractère est inséré par votre Éditeur HTML. Pourriez-vous donner un exemple plus spécifique dans le contexte?
curl http://stackoverflow.com/questions/26962323/what-is-this-insane-space-character-google-chrome/26962533?noredirect=1#comment42464140_26962533
... hmmmCe n'est pas réellement une réponse à la question mais plutôt un outil qui peut être utilisé pour détecter la présence de ce blanc spécial de l'espace dans le code html des pages d'un site web afin que nous puissions procéder à localiser et retirer.
L'outil, ce qui fondamentalement n'est:
chr(194).chr(160)
dans le code HTML contenuCette façon, vous pouvez réellement savoir où les espaces sont et modifier votre page correctement pour les supprimer.
La version en ligne de l'outil peut être trouvé ici:
http://tools.heavydots.com/nbsp-space-char-detect/
Un exemple de travail peut être vu avec l'url de cette question, qui contient un ocurrence:
http://tools.heavydots.com/nbsp-space-char-detect/?url=http%3A%2F%2Fstackoverflow.com%2Fquestions%2F26962323%2Fwhat-is-this-insane-space-character-google-chrome&highlight=1&hstring=%7BNBSP%7D
Il y a un dépôt Github disponible si quelqu'un veut le code à exécuter localement:
https://github.com/HeavyDots/nbsp-space-char-detect
Espère que quelqu'un trouve qu'il est utile, pour tous les commentaires il y a une section de commentaires sur la page de l'outil.
Mis à jour le 5 janvier 2017
À notre blog d'entreprise que nous venons d'écrire un drôle de post à ce sujet ennuyeux de l'espace blanc. Vous êtes invité à tomber et le lire! 🙂
http://heavydots.com/blog/when-the-white-space-became-a-beast
Comme les réponses précédentes l'ont mentionné, c'est un espace insécable (nbsp). Sur Mac, ce caractère est inséré lorsque vous appuyez accidentellement sur les touches Alt + Espace (la plupart du temps, cela se produit lorsque vous entrez le code qui nécessite Alt pour les caractères spéciaux, par exemple
[
sur un clavier allemand).À reconfigurer cette combinaison de touches pour un plain ol' caractère d'ESPACE, vous pouvez modifier votre raccourci clavier par défaut comme l'a suggéré sur Apple SE
Pour les espaces, Appuyez sur "Alt+0160" qui est un caractère aussi.