Normalizator Unicode
Normalizuj tekst Unicode przy użyciu formularzy NFC, NFD, NFKC i NFKD.
Wejście
Wyjście
Instrukcja
Co to jest normalizacja Unicode?
Unicode definiuje wiele sposobów reprezentacji tego samego widocznego znaku. Na przykład znak "é" może być przechowywany jako pojedynczy prekompozycyjny punkt kodowy (U+00E9) lub jako litera "e" następowana łączącym akcentem ostrym (U+0065 U+0301). Oba renderują się identycznie, ale różnią się bajt po bajcie, co powoduje problemy przy porównywaniu stringów, wyszukiwaniu i przetwarzaniu tekstu.
Normalizacja Unicode to proces konwersji tekstu do kanonicznej reprezentacji, tak aby równoważne stringi stały się identyczne. Standard Unicode definiuje cztery formy normalizacji:
- NFC (Canonical Decomposition, followed by Canonical Composition): Forma prekompozycyjna; najbardziej kompaktowa, szeroko stosowana w sieci i większości systemów operacyjnych.
- NFD (Canonical Decomposition): Forma w pełni rozłożona; każdy znak jest rozbity na literę bazową plus znaki łączące.
- NFKC (Compatibility Decomposition, followed by Canonical Composition): Jak NFC, ale również składa znaki kompatybilności (np. ligatury, indeksy górne, warianty pełnej szerokości) do ich kanonicznych odpowiedników.
- NFKD (Compatibility Decomposition): Jak NFD, ale również stosuje rozkład kompatybilności.
Opis narzędzia
To narzędzie normalizuje tekst Unicode z jednej formy normalizacji na inną. Wybierz formy źródłową i docelową, wklej swój tekst, a skonwertowane dane wyjściowe pojawią się natychmiast.
Funkcje
- Wszystkie cztery formy normalizacji: Obsługuje NFC, NFD, NFKC i NFKD zarówno jako źródło, jak i cel.
- Konwersja dwukierunkowa: Przełączaj się między dowolną kombinacją form swobodnie.
- Dane wyjściowe w czasie rzeczywistym: Tekst jest normalizowany natychmiast podczas pisania lub wklejania.
- Obsługuje dowolny skrypt Unicode: Działa z alfabetem łacińskim, CJK, arabskim, cyrylicą i dowolnym innym tekstem kodowanym w Unicode.
Jak to działa
Narzędzie stosuje standardową metodę JavaScript String.prototype.normalize() z wybraną formą docelową. Jest to w pełni zgodna ze specyfikacją implementacja normalizacji Unicode, zgodnie z definicją w Unicode Standard Annex #15.
Przypadki użycia
- Naprawy porównywania stringów: Normalizuj tekst przed porównaniem lub indeksowaniem, aby upewnić się, że wizualnie identyczne stringi pasują do siebie prawidłowo.
- Spójność wyszukiwania i bazy danych: Standaryzuj dane wejściowe użytkownika do jednej formy (zazwyczaj NFC) przed przechowaniem w bazie danych, aby zapobiec duplikatom, które różnią się tylko kodowaniem.
- Składanie kompatybilności: Użyj NFKC, aby zwinąć ligatury, indeksy górne i znaki pełnej szerokości do ich standardowych odpowiedników dla indeksowania wyszukiwania lub przetwarzania języka naturalnego.