Unicode-Zeichen-Inspektor
Codepoints, UTF-8/UTF-16-Bytes und Escapes jedes Zeichens ansehen
Ăber dieses Tool
FĂŒge beliebigen Text ein und sieh jedes Zeichen seziert: Codepoint (U+XXXX), UTF-8-Bytes, UTF-16-Einheiten, JavaScript-Escape-Sequenz, HTML-Entity und allgemeine Kategorie â plus Summen fĂŒr Codepoints, UTF-16-Einheiten, UTF-8-Bytes und wahrgenommene Zeichen (Graphem-Cluster).
Das ist das Tool fĂŒr âWarum ist dieser String so seltsam?â-Momente: Unsichtbare Zeichen (Zero-Width-Spaces, BOMs, Richtungsmarken) tauchen als sichtbare Zeilen auf; verwechselbare Zeichen (kyrillisches а vs. lateinisches a) offenbaren unterschiedliche Codepoints; und ein Emoji, das âein Zeichen istâ, entpuppt sich als sieben Codepoints, verbunden durch Zero-Width-Joiners.
Die vier verschiedenen LĂ€ngensummen beantworten die ewige Frage, warum JavaScripts .length, ein Datenbank-Byte-Limit und das, was der Nutzer sieht, sich ĂŒber die LĂ€nge eines Strings uneins sind.
HĂ€ufige Fragen
- Warum ist "đ".length === 2 in JavaScript?
- JavaScript-Strings zĂ€hlen UTF-16-Code-Units. Zeichen jenseits von U+FFFF â darunter die meisten Emoji â brauchen ein Surrogatpaar, also zwei Einheiten. Der Inspector zeigt beide Einheiten und den echten Codepoint, und die Zusammenfassung zĂ€hlt sie getrennt.
- Was ist ein Graphem-Cluster?
- Das, was ein Leser als ein Zeichen wahrnimmt. Ă© kann zwei Codepoints sein (e + kombinierender Akzent), und Familien-Emoji können sieben oder mehr sein, verbunden durch Zero-Width-Joiners. Die Graphem-ZĂ€hlung nutzt den Intl.Segmenter des Browsers â das NĂ€chste an âZeichen, wie Nutzer sie sehenâ.
- Wie finde ich unsichtbare Zeichen in einem String?
- FĂŒge ihn hier ein â jeder Codepoint bekommt eine Zeile, inklusive Zero-Width-Spaces (U+200B), geschĂŒtzter Leerzeichen (U+00A0), BOMs (U+FEFF) und Richtungsmarken, jeweils mit Kategorie beschriftet. Das sind die klassischen ĂbeltĂ€ter hinter âidentischenâ Strings, die GleichheitsprĂŒfungen nicht bestehen.
- Was sagen mir die UTF-8-Bytesequenzen?
- Genau das, was gespeichert oder ĂŒbertragen wird: ASCII ist ein Byte, die meisten lateinischen Erweiterungen zwei, CJK drei, Emoji vier. Schneidet ein System mitten in einer Sequenz ab, bekommst du Ersetzungszeichen (ïżœ) â die Byte-Ansicht zeigt, wo solche Schnitte landen wĂŒrden.