Czym są niewidoczne znaki?

Niewidoczne znaki to punkty kodowe Unicode, które nie mają widocznego glifu, ale nadal zajmują miejsce w ciągu znaków i wpływają na sposób, w jaki oprogramowanie przetwarza lub renderuje tekst. Obejmują znaki sterujące (takie jak tabulator i przesunięcie wiersza), znaki formatowania (takie jak łączniki o zerowej szerokości i znaki kierunkowe), różne warianty białych znaków oraz specjalne znaczniki, takie jak znacznik kolejności bajtów (BOM). Ponieważ wyglądają jak nic, są notorycznie trudne do zauważenia w zwykłym edytorze tekstu i są częstym źródłem subtelnych błędów, uszkodzonych układów i błędów przetwarzania danych.

Opis narzędzia

Przeglądarka Niewidocznych Znaków to interaktywny edytor tekstu, który renderuje każdy niewidoczny znak jako widoczny symbol w miejscu. Wklej lub wpisz dowolny tekst, a każdy ukryty znak jest natychmiast zastępowany małym symbolicznym glifem — tabulatory pojawiają się jako , spacje jako ·, spacje o zerowej szerokości jako ·, znaki kierunkowe jako / , BOM jako i tak dalej. Najechanie kursorem na dowolny glif pokazuje etykietkę z pełną nazwą znaku i punktem kodowym Unicode. Nic nie opuszcza edytora; całe renderowanie odbywa się lokalnie w Twojej przeglądarce.

Przykłady

Tekst wejściowy (surowy) Co widzisz w przeglądarce
Hello\u200BWorld (spacja o zerowej szerokości między słowami) Hello·World z glifem · oznaczającym U+200B
\u202Eright-to-left override →right-to-left override z glifem kierunkowym na początku
line one\r\nline two Glifu powrotu karetki i przesunięcia wiersza przed nową linią
\uFEFFstart of file ▯start of file pokazujący BOM na pozycji 0

Funkcje

  • Renderowanie wbudowane: Niewidoczne znaki są wyświetlane jako glifu bezpośrednio w edytorze, a nie w osobnym panelu, dzięki czemu widzisz je w kontekście otaczającego tekstu
  • Szeroki zakres obsługiwanych znaków: Obsługuje znaki sterujące C0 i C1, wszystkie nazwane znaki formatowania Unicode, warianty białych znaków Unicode (spacja en, spacja em, spacja włosa, wąska spacja bez podziału itp.), znaki formatowania kierunkowego, selektory wariantów, znaki tagów i BOM
  • Etykietki: Najechanie kursorem na dowolny glif wyświetla pełną nazwę Unicode znaku i punkt kodowy (np. Zero Width Space — U+200B)

Jak to działa

Narzędzie używa CodeMirror 6 z niestandardowym rozszerzeniem, które iteruje po każdym znaku w widocznym obszarze edytora. Dla każdego punktu kodowego sprawdza tabelę wyszukiwania znanych niewidocznych znaków, testuje względem klas właściwości Unicode \p{Cc} (sterowanie) i \p{Cf} (formatowanie) oraz wykrywa selektory wariantów i zakresy znaków tagów. Dopasowane znaki są zastępowane wbudowanymi widżetami dekoracyjnymi pokazującymi odpowiadający im glif symbolu. Zwykłe spacje i tabulatory są delegowane do wbudowanego rozszerzenia highlightWhitespace CodeMirror.