Polski ma dziewięć liter spoza podstawowego alfabetu ASCII — ą, ć, ę, ł, ń, ó, ś, ź, ż — a każda z nich to osobny punkt kodowy Unicode, więc każda zamienia się dokładnie na jeden kod ucieczki, np. \u0142 dla „ł".
„ł" to nie akcent, tylko inna litera
W przeciwieństwie do „ą" czy „ę", które wyglądają jak litera z dodanym znakiem, „ł" jest w polskim alfabecie osobną literą, niepowiązaną algorytmicznie z „l" — dla Unicode to i tak nie ma znaczenia, każdy znak dostaje swój punkt kodowy niezależnie od tego, czy językoznawczo jest to „akcent", czy osobna litera.
JSON i sekwencje ucieczki
Specyfikacja JSON pozwala escapować dowolny znak ciągu jako \uXXXX. Zdarza się to często, gdy dane są generowane programowo, a serializator celowo unika znaków spoza ASCII dla kompatybilności — słowo takie jak „łódź" może wtedy pojawić się w JSON jako ciąg kilku kodów ucieczki zamiast czterech zwykłych liter.
Kiedy to potrzebne
- Odczytanie w zwykłym języku, jaki tekst kryje się za sekwencjami ucieczki w odpowiedzi JSON z API.
- Przygotowanie ciągu dla środowiska, które nie akceptuje znaków spoza ASCII.
- Diagnozowanie problemów z kodowaniem podczas pracy z danymi zewnętrznymi.
Znaki poza podstawową płaszczyzną (emoji)
Wszystkie dziewięć polskich znaków diakrytycznych mieści się w podstawowej płaszczyźnie wielojęzycznej i zamienia się na pojedynczy kod ucieczki. Emoji leżą poza tą płaszczyzną i w JavaScript są kodowane dwoma kodami — parą zastępczą, taką jak \ud83d\ude00 — czego nie doświadczy żadna polska litera.