Was ist dieses INSANE Leerzeichen? (Google Chrome)
Dies treibt mich absolut, !&&%&$ insane... es trotzt alles, was ich mir denken kann.
DIESER Charakter hier... " "
Zwischen diesen Anführungszeichen... öffnen Sie google chrome und untersuchen. Sie werden sehen, Ihr ein
... normal oder? Jetzt mit der rechten Maustaste und tatsächlich sehen die Quelle dieser stack overflow Seite. Es ist ein normales Leerzeichen... (auch, den Charakter, den ich kopiert wurde, einen tatsächlichen Raum).
Ich könnte verstehen, wenn es eine Art von rich-text-editor oder so etwas, aber in den raw-html-Quelle ist ein regelmäßiger Raum, so was gibt?
Hier nur auf die space-Taste (die gut funktioniert)... " "
.
Können Sie sogar kopieren Sie es und fügen Sie es überall und Chaos anrichten und chrome setzen
überall. Auch wenn was in die Zwischenablage kopiert ist nur ein RAUM.
Habe ich diese BLÖDEN Zeichen zeigen, überall zufällig in meine website und ich habe keine Ahnung, Woher Sie kommen, oder WARUM ist google der Umwandlung einer RAUM-in eine nbsp;
Habe ich versucht Inspektion der eigentlichen Charakter-code, und es ist ein normales Leerzeichen aus allen Dingen, die ich finden kann...
Jede einzelne Methode, die ich versuchen zeigt, dass es wie ein NORMALER Raum... so was gibt?
Wenn ich mit ruby und tun " ".ord
bekomme ich 32
. Wenn ich es mit dem kaputten Raum, den ich auch bekommen 32
.
Bitte helfen Sie mir, im Verstand zu verlieren.
Bearbeiten: können Sie das beweisen,... anzeigen Quelle auf dieser Seite und Sie werden sehen, zwei leere " "
wie normal. Schauen Sie jetzt in die Konsole und nur das eine wird ein
noch die raw-Quelle ist identisch.
Bild für Menschen, die nicht chrome verwenden (dies ist bei dieser Suche sehr post per chrome-dev-tools):
Hier ist der HTML-Code der gleiche text, den Sie sehen, wenn Sie view source... keinen nbsp gefunden werden.
nbsp;
? Es macht das gleiche. nbsp;
nur im inspector? " "
.  
ist eine no-break space-Zeichen. Ich weiß nicht warum, ich bin da etwas anders als du. InformationsquelleAutor der Frage Tallboy | 2014-11-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn ich diese Seite anzeigen Quelle im Internet Explorer, oder laden Sie es direkt vom server und zeigen Sie Sie in einem text-editor, das erste Leerzeichen in Frage, die formatiert ist, wie dies in der eigentlichen HTML:
Beachten Sie die
 
Einheit. Das ist die Unicode-codepointU+00A0 NO-BREAK SPACE
. Chrome ist einfach nur schön und neu formatieren Sie es als
bei der Inspektion des HTML-Codes. Aber machen Sie keinen Fehler, es ist eine echte non-breaking space, nicht Unicode-codepointU+0020 SPACE
wie Sie erwarten.U+00A0
ist optisch der gleiche wieU+0020
, aber Sie sind semantisch unterschiedliche Charaktere.Dem zweiten Leerzeichen in Frage, die formatiert ist, wie dies in der eigentlichen HTML:
So ist es Unicode-codepoint
U+0020
und nichtU+00A0
. Anzeige der raw-hex-Daten von dieser Seite wird bestätigt, dass:InformationsquelleAutor der Antwort Remy Lebeau
Es stellt sich heraus, das zwei scheinbar identischen whitespace-Zeichen sind nicht den gleichen Charakter.
Siehe da:
JSFiddle
typedSpace.charCodeAt(0)
gibt 32, die 
klassischen Raum. In der Erwägung, dasscopiedSpace.charCodeAt(0)
gibt 160, die 
AKA
Charakter.Den Unterschied zwischen den beiden ist, dass eine ganze Reihe von
 
wiederholt nach einem anderen halten Ihren Boden, und erstellen Sie zusätzliche Leerzeichen zwischen Ihnen, in der Erwägung, dass eine ganze Reihe von wiederholten 
Zeichen quetschen zusammen in einem Raum.Zum Beispiel:
A       B
Ergebnisse: A BA       B
Ergebnisse: A BKonvertieren
 
Charakter mit einem 
Zeichen in einem string, versuchen Sie dies:Den Menschen in der Zukunft wie mich, hatte Debuggen von einem hohen Niveau den ganzen Weg hinunter zu den Zeichen-codes, ich Grüße Sie.
InformationsquelleAutor der Antwort Charles Clayton
Dies ist nicht wirklich eine Antwort auf die Frage, sondern ein Werkzeug, das verwendet werden kann, zu erkennen, diese speziellen Leerzeichen im html-Code der Seiten einer website, so dass wir fortfahren können, zu lokalisieren und entfernen Sie es.
Das tool, was im Grunde genommen ist:
chr(194).chr(160)
im HTML-InhaltDiese Weise können Sie wirklich wissen, wo die Räume sind und Bearbeiten Sie Ihre Seite richtig zu entfernen.
Die online-version des Tools finden Sie hier:
http://tools.heavydots.com/nbsp-space-char-detect/
Als ein Beispiel gesehen werden kann, mit der url zu dieser Frage enthält Eintritt:
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
Gibt es einen Github-repo verfügbar, wenn jemand will, dass der code lokal ausführen:
https://github.com/HeavyDots/nbsp-space-char-detect
Hoffe, jemand findet es nützlich, für jedes feedback gibt es ein Kommentarfeld auf der Werkzeug-Seite.
Aktualisiert 5. Januar 2017
In unserem Unternehmens-blog, die wir gerade geschrieben ein Lustiger Beitrag über diese lästigen weißen Raum. Sie sind herzlich eingeladen zum vorbeischauen und Lesen!!! 🙂
http://heavydots.com/blog/when-the-white-space-became-a-beast
InformationsquelleAutor der Antwort Alexandru Trandafir Catalin
Es ist ein non breaking space.
ist die Einheit zur Darstellung eines non-breaking space. Es ist im wesentlichen ein standard-Platz, der Hauptunterschied ist, dass ein browser sollte nicht brechen (oder wrap) eine Textzeile an der Stelle, dass dieser
belegt.Wahrscheinlich das Zeichen wird eingefügt, indem Sie Ihren HTML-Editor. Könnten Sie konkreter in Zusammenhang?
InformationsquelleAutor der Antwort TooltotheDeath
Als die vorigen Antworten erwähnt haben, es ist ein geschütztes Leerzeichen (nbsp). Auf Macs, dieses Zeichen wird eingefügt, wenn Sie versehentlich drücken Sie Alt + Leertaste (die meisten der Zeit dies geschieht, wenn die Eingabe von code erfordert, dass Alt für Sonderzeichen, z.B.
[
auf ein Deutsches Tastatur-layout).Neu zuordnen Sie diese Tastenkombination, um ein plain ol' LEERZEICHEN, Sie können ändern Sie den Standard-Tastenbelegung wie vorgeschlagen auf Apple SE
InformationsquelleAutor der Antwort Frank Schmitt
Für Leerzeichen Drücken Sie "Alt+0160", die ein Charakter auch.
InformationsquelleAutor der Antwort Keyur Sureliya