Ich habe zwei identische Zeichenfolgen in Javascript mit einigen Leerzeichen. Als ich die ASCII-Werte unter Verwendung str.charCodeAt(n)
druckte, zeigt es die Werte als 32 und 160 an. Ich googled die Werte und es zeigt mich als brechende und nicht brechende Räume an. Kann jemand erklären, was dieses Verhalten ist?Unterschied zwischen brechenden und nicht brechenden Leerzeichen ascii Zeichen
Antwort
Der Unterschied zwischen einem normalen (brechenden) Leerzeichen und einem nicht brechenden Leerzeichen besteht darin, dass Textanzeige- und Textsatzsoftware keinen automatischen Zeilenumbruch anstelle eines fehlerfreien Leerzeichen einfügen sollte. (Es ist so, als ob das nicht-brechende Leerzeichen die Wörter vor und nach ihm zu einem nicht aufteilbaren Wort verbindet.) Im Gegensatz dazu wird ein regulärer Raum als möglicher Ort behandelt, um eine Linie zu brechen.
Mit diesen Worten ist der Code 160
tatsächlich außerhalb des Bereichs der regulären (7-Bit) ASCII. Die Interpretation von 160
als nicht brechendes Leerzeichen (oder NBSP
) Zeichen stammt aus dem Zeichensatz Latin1 (ISO8859-1). (In erweiterten ASCII, der Code für den NBSP
Charakter ist 255
!)
Referenzen:
Ein brechungsfreier Raum ist ein Raum, der nicht in eine neue Linie einbricht. Zwei Wörter, die durch ein nicht brechendes Leerzeichen getrennt sind, bleiben zusammen und brechen nicht in eine neue Zeile ein.
Brechen von Räumen auf der anderen Seite wird brechen.
- 1. Parsing HTML mit nicht-brechenden Leerzeichen
- 2. XML nicht brechenden Raum
- 3. Wie benutze nicht-brechenden Platz in TextBox
- 4. Gulp uglify brechenden Winkel Anwendung
- 5. Wie funktioniert das Kopieren und Einfügen von nicht brechenden Räumen in verschiedenen Systemen/Browsern?
- 6. Vertikales Layout mit CSS ohne Verwendung von brechenden Elementen?
- 7. Leerzeichen zwischen Zeichen und Wörtern entfernen
- 8. Elemente zwischen einem Zeichen und Leerzeichen extrahieren
- 9. Unterschied zwischen Punkt und Leerzeichen in Scala
- 10. Unterschied zwischen 'Zeichen' und 'Oktett' in Hashing
- 11. Unterschied zwischen "und" Zeichen in JQuery
- 12. Unterschied zwischen char und int bei der Deklaration von Zeichen
- 13. Nicht-ASCII-Zeichen in URL
- 14. Syntax von Nicht-ASCII-Zeichen
- 15. Nicht-ASCII-Zeichen in PHP?
- 16. Nicht-ASCII-Zeichen in Matplotlib
- 17. Python öffnet Textdatei mit einem Leerzeichen zwischen jedem Zeichen
- 18. Möglichkeiten zum Schutz des Code-Repository vor brechenden oder fehlerhaften Commits?
- 19. Insert Leerzeichen zwischen den Zeichen in listbox
- 20. Entfernen von Nicht-ASCII-Zeichen und Ersetzen durch Leerzeichen aus Pandas-Datenrahmen
- 21. NSString padding/Leerzeichen zwischen den Zeichen
- 22. Python mail fügt Leerzeichen alle 171 Zeichen ein
- 23. Nicht-ASCII-Zeichen entfernen und ein Leerzeichen an das Feld anhängen, in dem die nicht-ASCII-Zeichen ein Perl verwendeten Alle entfernen das doppelte "Zitat"?
- 24. RegEx alle Zeichen zwischen Leerzeichen und angegebenen Zeichenfolgen abrufen
- 25. Unterschied zwischen ClientCredentialType = Windows-und = Ntlm
- 26. Unterschied zwischen ISO_8859_1 und latin1
- 27. Unsichtbare Zeichen - ASCII
- 28. Bash: Konvertieren von Nicht-ASCII-Zeichen in ASCII
- 29. Normalisieren von ASCII-Zeichen
- 30. Regex irgendein ASCII-Zeichen
Können Sie uns eine Probe von den 2 Saiten, die du benutzt hast? – Mistalis
Warum gibt es ein Java-Tag? – Blobonat
Punkte zum Nachdenken: 'charCodeAt' gibt Ihnen eine UTF-16-Code-Einheit, von der eine oder zwei einen Unicode-Codepunkt codieren. Der ASCII-Zeichensatz hat kein Leerzeichen, das nicht bricht (aber das ist in Ordnung, wenn Sie JavaScript, Java, .NET, HTML, XML, ... verwenden, verwenden Sie wahrscheinlich kein ASCII.) –