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)
  • Wyróżnianie standardowych białych znaków: Zwykłe spacje i tabulatory są wyróżniane za pomocą wbudowanych znaczników białych znaków CodeMirror, utrzymując je wizualnie odrębne od zwykłego tekstu
  • Tryb zwykłego tekstu: Edytor pozostaje w trybie zwykłego tekstu, dzięki czemu znaki specjalne nigdy nie są reinterpretowane ani modyfikowane podczas pisania

Przypadki użycia

  • Debugowanie artefaktów kopiowania i wklejania: Tekst skopiowany z plików PDF, stron internetowych lub procesorów tekstu często zawiera spacje o zerowej szerokości, miękie łączniki lub spacje bez podziału, które powodują niezgodności w porównaniach ciągów znaków i wynikach wyszukiwania
  • Inspekcja plików danych: Wklej dane CSV, JSON lub dzienniki, aby zlokalizować nieoczekiwane znaki sterujące (bajty zerowe, powroty karetki, BOM) przed zaimportowaniem danych do bazy danych lub parsera
  • Debugowanie sieci i kodu: Sprawdź dane wejściowe dostarczone przez użytkownika lub odpowiedzi API pod kątem ukrytych znaków kierunkowych lub znaków formatowania, które mogą przerwać renderowanie lub spowodować problemy bezpieczeństwa

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.