Konwerter Unicode na UTF-8

Zamień dosłowny tekst Unicode na składnię escape \u00E9, \u{1F600}, którą języki programowania osadzają w kodzie źródłowym, albo wklej ciąg z escapami i zdekoduj go z powrotem na oryginalne znaki. Działa dla znaków BMP (4-cyfrowe escapy) i płaszczyzn uzupełniających, takich jak emoji (zmiennej długości \u{...}).

Jak konwertować między escapami Unicode a UTF-8

  1. 1

    Wybierz kierunek

    Koduj znaki na escapy `\u` albo dekoduj ciąg z escapami z powrotem na tekst.

  2. 2

    Wklej swoje dane

    Zwykły tekst do kodowania; ciąg z sekwencjami `\uXXXX` albo `\u{XXXXX}` do dekodowania.

  3. 3

    Odczytaj wynik

    Znaki BMP dają czterocyfrowe escapy w stylu `\u0041`; znaki powyżej U+FFFF używają postaci ES6 `\u{...}`.

  4. 4

    Skopiuj do swojego kodu

    Wrzuć wynik do ciągu JavaScript, literału JSON, pliku konfiguracyjnego albo fikstury testowej.

Składnia escape w różnych językach

Różne języki zapisują tę samą ideę inaczej. Konwerter wypisuje powszechną formę JavaScript/JSON, ale oto na co tłumaczysz, gdy piszesz ten sam znak gdzie indziej.

Składnia escape według języka

Język BMP (<= U+FFFF) Uzupełniające (> U+FFFF)
JavaScript \u00E9 \u{1F600} (ES6+)
JSON \u00E9 Para surogatów \uD83D\uDE00
Python \u00e9 \U0001F600
Java \u00e9 Para surogatów
C / C++ \u00e9 \U0001F600
Ruby \u00e9 \u{1F600}
Rust \u{00e9} \u{1F600}
Encja HTML &#xE9; &#x1F600;
CSS \0000e9 \1F600

Dlaczego emoji potrzebują długiej formy

Podstawowa płaszczyzna wielojęzyczna (BMP) obejmuje U+0000 do U+FFFF, wszystko mieści się w pojedynczej 16-bitowej jednostce, do czego zaprojektowano starą składnię \uXXXX. Emoji żyją głównie w płaszczyźnie 1 (U+1F000 i wyżej), która nie zmieści się w czterech cyfrach szesnastkowych. Dwie opcje:

  1. Klamry ES6, \u{1F600} przyjmuje dowolną długość.
  2. Pary surogatów UTF-16, dwa escapy \uXXXX na jeden znak. Parsery JSON to akceptują i właśnie to zwykle emitują kodery JSON.

Oba dekodują do tego samego ciągu, ale pary surogatów są kruche: pocięcie ciągu między wysokim a niskim surogatem daje nieprawidłowy UTF-16.

Najczęściej zadawane pytania

Cztery cyfry szesnastkowe sięgają maksymalnie U+FFFF. Emoji zaczynają się od U+1F000, więc potrzebują postaci z klamrami ES6 \u{...}, albo pary surogatów UTF-16, jeśli tkwisz przy starszych celach. To narzędzie używa klamr dla wszystkiego powyżej U+FFFF.

Nie jako parę. Dekoder rozumie postać z klamrami \u{1F600} oraz czterocyfrowe escapy \uXXXX, ale nie łączy pary surogatów UTF-16 (formy z dwoma escapami, której używa JSON) z powrotem w jedno emoji: każda połowa jest dekodowana osobno i nie da się jej odtworzyć. Dla wszystkiego powyżej U+FFFF wklej postać z klamrami \u{...}, czyli dokładnie to, co produkuje koder.

Nie. Escape taki jak \u00E9 reprezentuje punkt kodowy U+00E9, a nie sekwencję bajtów UTF-8 (która byłaby C3 A9). Dla widoku surowych bajtów użyj narzędzia Wyszukiwarka Unicode, które pokazuje bajty UTF-8 w HEX.

Konwersja odbywa się po stronie serwera w obrębie tego żądania, ale nic nie jest zachowywane: brak logowania, brak przechowywania konwertowanych ciągów.

Powiązane narzędzia

Narzędzie jest dostępne w innych językach