Skip to content

Konwerter Unicode

Wklej dowolny zapis Unicode i odczytaj go jako tekst. Sekwencje \uXXXX, klamry ES6, punkty kodowe U+ i ciągi bajtów rozpoznaje sam, po czym wypisuje wszystkie zapisy naraz. Działa w przeglądarce, nic nie wysyła.

Bez śledzenia Działa w przeglądarce Bezpłatne

Wszystko działa w przeglądarce — dane wejściowe nigdy nie są wysyłane, logowane ani zapisywane.

0 znaków
Czytelny tekst
Wynik pojawi się tutaj
Normalizuj
Wszystkie zapisy za jednym razem
JavaScript / Java / JSON uXXXX
ES6 u{XXXXX}
Python uXXXX / UXXXXXXXX
Go uXXXX / UXXXXXXXX
Rust u{XXXXX}
Punkt kodowy U+XXXX
HTML dziesiętnie &#NNNNN;
HTML szesnastkowo &#xXXXX;
Zakodowane w URL %XX
CSS XXXXXX
Bajty UTF-8 hex
Jednostki UTF-16 hex
UTF-32 hex
Bajty ósemkowo NNN
Dziesiętne punkty kodowe NNNNN
Znak po znaku
Znak Punkt kodowy UTF-8 UTF-16 Pismo Kategoria Nazwa
Wynik pojawi się tutaj

Ściąga

Znak Punkt kodowy JavaScript / Java / JSON Bajty UTF-8 Zakodowane w URL HTML dziesiętnie
中文 U+4E2D U+6587 \u4E2D\u6587 E4 B8 AD E6 96 87 %E4%B8%AD%E6%96%87 中文
😀 U+1F600 \uD83D\uDE00 F0 9F 98 80 %F0%9F%98%80 😀
A U+0041 A 41 A A
U+3000 U+3000 \u3000 E3 80 80 %E3%80%80  
Każda konwersja z tabeli została przed publikacją porównana między dwiema niezależnymi implementacjami. — Zespół inżynierski Go Tools · Aug 27, 2026

Zachowanie sprawdzone w Node, Pythonie, Javie, Go i w prawdziwym silniku przeglądarki, a nie wywnioskowane z dokumentacji.

Czym jest sekwencja ucieczki Unicode?

Sekwencja ucieczki zapisuje znak wyłącznie za pomocą ASCII, dzięki czemu przechodzi przez systemy, które samego znaku nie udźwigną. Ten sam znak ma inną sekwencję w niemal każdym języku: JavaScript i JSON zapisują cztery cyfry szesnastkowe na jednostkę UTF-16, ES6 i Rust biorą cały punkt kodowy w klamry, Python i Go dokładają formę ośmiocyfrową, CSS zaczyna od samego ukośnika odwrotnego, a HTML ma własne odwołania liczbowe i nazwane. Wszystkie opisują ten sam punkt kodowy — dlatego jeden ciąg potrafi pojawiać się w kilku różnych postaciach.

中文
  U+4E2D U+6587         code point
  \u4E2D\u6587          JavaScript / Java / JSON
  \u{4E2D}\u{6587}      ES6 / Rust
  E4 B8 AD E6 96 87     UTF-8
  %E4%B8%AD%E6%96%87    URL
  中文      HTML

Co potrafi ten konwerter

Sam rozpoznaje zapis

Sekwencje ucieczki, klamry, formy ośmiocyfrowe, punkty kodowe, encje, kodowanie procentowe i ciągi bajtów wykrywa bez przełączania trybu.

Radzi sobie z mieszanym wejściem

Zmienia się tylko część zakodowana. Interpunkcja JSON, ścieżki Windows i już zabezpieczone ukośniki zostają takie, jakie były.

Wszystkie zapisy za jednym razem

Jedno wklejenie daje całą tabelę, więc nigdy nie trzeba konwertować dwa razy, żeby przejść z jednego języka do drugiego.

Poprawność pod konkretny język

Znaki spoza BMP dostają formę ośmiocyfrową dla Pythona i Go, gdzie para surogatów by nie zadziałała.

Rozbiór na pojedyncze znaki

Punkt kodowy, bajty UTF-8 i UTF-16, pismo i kategoria dla każdego znaku, a do tego nazwa Unicode wszędzie tam, gdzie znak ją ma.

Pokazuje niewidoczne znaki

Znaczniki BOM, łączniki o zerowej szerokości i twarde spacje dostają widoczny zamiennik.

Przykłady

Cała linia logu: zmienia się tylko część zakodowana

{"msg":"\u4e2d\u6587 failed","code":500}
{"msg":"中文 failed","code":500}

Cudzysłowy, nazwy kluczy i liczby zostają nietknięte, więc można wkleić całą linię zamiast ręcznie wyłuskiwać z niej sekwencje.

Cztery różne zapisy w jednym wklejeniu

U+4E2D  \u{1F600}  中  \ud83d\ude00
中  😀  中  😀

Punkt kodowy, klamrowa sekwencja ES6, encja HTML i para surogatów — wszystko zdekodowane za jednym przebiegiem. Nie trzeba niczego wcześniej wybierać ani konfigurować.

Jeden znak, każdy zapis z osobna

\u4E2D        JavaScript / Java / JSON
\u{4E2D}      ES6 / Rust
U+4E2D        code point
E4 B8 AD      UTF-8
\344\270\255  octal

Ten sam znak zapisany tak, jak oczekuje go każdy z języków. Python i Go wymagają dla znaków spoza BMP formy ośmiocyfrowej — para surogatów nie skompiluje się w Go, a w Pythonie kończy się wyjątkiem UnicodeEncodeError.

Jak używać

  1. 1

    Wklej

    Sekwencje ucieczki, punkty kodowe, encje, zakodowane bajty albo zwykły tekst. Nie trzeba z góry mówić, co to jest.

  2. 2

    Odczytaj wynik

    Czytelny tekst pojawia się od razu, wraz z informacją, jakie zapisy zostały rozpoznane.

  3. 3

    Skopiuj potrzebną formę

    Pod wynikiem znajduje się lista wszystkich zapisów, każdy z własnym przyciskiem kopiowania.

  4. 4

    Zajrzyj głębiej, gdy coś nie gra

    Otwórz tabelę znaków, żeby zobaczyć punkty kodowe, bajty, pismo i nazwy, i włącz pokazywanie niewidocznych znaków.

Pułapki, o których warto wiedzieć

Para surogatów tam, gdzie język chce formy ośmiocyfrowej

Para, która działa w JSON, w Pythonie staje się dwiema połamanymi połówkami, a w Go nie chce się skompilować. Dla znaków powyżej U+FFFF użyj formy ośmiocyfrowej.

✗ Niepoprawne
\ud83d\ude00
✓ Poprawne
\U0001F600

Odczytywanie liczbowych odwołań HTML wprost jako punktów kodowych

Odwołania z zakresu od 128 do 159 trzeba czytać przez windows-1252. Naiwna implementacja zamienia prawy apostrof w niewidoczny znak sterujący — i dlatego w starym eksporcie w tych miejscach nie wyświetla się zupełnie nic.

✗ Niepoprawne
’  ->  U+0092
✓ Poprawne
’  ->  U+2019

Krótka sekwencja CSS przed znakiem szesnastkowym

Parser dalej połyka cyfry szesnastkowe, więc sekwencja i następny znak zlewają się w jeden błędny punkt kodowy. Dopełnij do sześciu cyfr.

✗ Niepoprawne
\4E2Da
✓ Poprawne
\004E2Da

Kiedy się przydaje

Czytanie logów
Logi serwera i odpowiedzi API często przychodzą z zakodowanym nie-ASCII. Wklej linię i przeczytaj ją bez wcześniejszej edycji.
Przenoszenie ciągów między językami
Skopiuj sekwencję dokładnie w formie, którą przyjmuje język docelowy, zamiast ręcznie przeliczać pary surogatów na formy ośmiocyfrowe.
Tropienie błędu kodowania
Kiedy porównanie zawodzi albo baza odrzuca wartość, tabela znaków pokazuje dokładnie, jakie punkty kodowe i bajty wchodzą w grę.
Czyszczenie wklejonej treści
Tekst skopiowany ze strony albo z dokumentu często niesie niewidoczne znaki. Znajdź je, zanim trafią na produkcję.

Szczegóły techniczne

Sekwencje kodują jednostki UTF-16, a nie znaki
JavaScript, Java i JSON zabezpieczają jednostki kodowe UTF-16, więc znak powyżej U+FFFF wymaga dwóch sekwencji. Python i Go oferują zamiast tego formę ośmiocyfrową, która mieści cały punkt kodowy.
Liczbowe odwołania HTML czyta się inaczej
Specyfikacja HTML wymaga, by odwołania liczbowe z zakresu od 128 do 159 czytać przez windows-1252, a nie jak punkty kodowe. Dlatego odwołanie 146 to prawy apostrof, a nie niewidoczny znak sterujący.
Sekwencje CSS trzeba dopełnić
Sekwencja CSS pochłania do sześciu cyfr szesnastkowych, więc krótki zapis, po którym stoi znak szesnastkowy, zlewa się w jeden błędny punkt kodowy. Dopełnienie do sześciu cyfr usuwa dwuznaczność, a następująca po niej spacja zostaje potraktowana jako znak kończący.
Każdy język robi z niesparowanym surogatem coś innego
Niesparowany surogat zostaje zachowany przy serializacji JSON, po cichu podmieniony przez TextEncoder, odrzucony przez kodowanie procentowe, zapisany jako znak zapytania przez Javę i zgłoszony jako błąd przez Pythona.

Dobre praktyki

Normalizuj przed porównaniem
Przed porównaniem albo usuwaniem duplikatów sprowadź obie strony do tej samej postaci normalizacyjnej, zwłaszcza przy nazwiskach i identyfikatorach.
Dla Pythona i Go wybieraj formę ośmiocyfrową
Para surogatów jest poprawna w JSON, a psuje się w obu tych językach. Gdy celem jest kod Pythona albo Go, użyj sekwencji ośmiocyfrowej.
Sprawdzaj niewidoczne znaki wcześnie
Waliduj wklejone dane już na granicy wejścia, zamiast później tropić niezgodność w porównaniach.
Zachowaj oryginał
Gdy pojawią się znaki zastępcze, dekodowanie przestaje być bezstratnie odwracalne. Trzymaj surową wartość, dopóki nie ma pewności.

Najczęstsze pytania

Co znaczy \u4e2d\u6587 i jak to odczytać?
Każde \uXXXX to jedna jednostka kodowa UTF-16 zapisana szesnastkowo. \u4e2d to U+4E2D, a \u6587 to U+6587 — razem tworzą chińskie słowo „中文”. Wklej cały ciąg do pola powyżej, a wróci czytelny tekst; otaczający go JSON albo tekst logu zostanie nietknięty.
Ukośniki zniknęły i został sam u4e2d. Czy to jeszcze da się odczytać?
Tak. Terminale i potoki logów regularnie zjadają ukośniki odwrotne. Zlepek u4e2du6587 zostaje rozpoznany i zdekodowany, a zwykłe słowa, w których przypadkiem występuje u, pozostają nietknięte.
Dlaczego jedno emoji zapisuje się jako dwie sekwencje \u?
Znaki powyżej U+FFFF nie mieszczą się w jednej jednostce kodowej UTF-16, więc JavaScript, Java i JSON zapisują je jako parę surogatów. Uśmiechnięta buźka to jeden punkt kodowy, dwie jednostki UTF-16 i cztery bajty UTF-8. Tabela znaków pokazuje wszystkie trzy liczby.
Jak zrobić to w drugą stronę i zamienić tekst na sekwencje ucieczki?
Wpisz albo wklej zwykły tekst i zajrzyj do tabeli pod wynikiem. Wszystkie zapisy powstają za jednym razem, więc wystarczy skopiować dokładnie tę formę, której oczekuje dany język, zamiast konwertować dwa razy.
Dwa ciągi wyglądają identycznie, a kod twierdzi, że się różnią. Dlaczego?
Najprawdopodobniej mają różną postać normalizacyjną. Litera z akcentem może być jednym punktem kodowym albo literą bazową plus znakiem łączącym; renderują się tak samo, ale nie są równe. Przycisk NFC sprowadza obie strony do wspólnej postaci. Normalizacja nie jest przy tym operacją pustą dla pisma CJK — ideogramy zgodnościowe zmieniają się pod zwykłym NFC.
W ciągu siedzi coś niewidocznego i psuje kod. Jak to znaleźć?
Włącz „Pokaż niewidoczne znaki”. Znaczniki BOM, spacje o zerowej szerokości, twarde spacje i selektory wariantów dostaną widoczny zamiennik, a tabela znaków poda nazwę każdego z nich razem z bajtami.
Czy wklejone dane są gdziekolwiek wysyłane?
Nie. Konwersja odbywa się w przeglądarce, bez żadnego żądania sieciowego. Nic nie jest wysyłane, logowane ani zapisywane, więc wklejanie produkcyjnych logów jest bezpieczne.

Powiązane narzędzia

Zobacz wszystkie narzędzia →