Unicode till UTF-8-omvandlare

Förvandla bokstavlig Unicode-text till escape-syntaxen \u00E9, \u{1F600} som programmeringsspråk bäddar in i källkod, eller klistra in en escapad sträng och avkoda den tillbaka till de ursprungliga tecknen. Fungerar för BMP-tecken (4-siffriga escapes) och kompletterande plan som emoji (\u{...} med variabel längd).

Så omvandlar du mellan Unicode och UTF-8-escapes

  1. 1

    Välj en riktning

    Koda tecken till `\u`-escapes, eller avkoda en escapad sträng tillbaka till text.

  2. 2

    Klistra in din indata

    Vanlig text för kodning; en sträng med `\uXXXX`- eller `\u{XXXXX}`-sekvenser för avkodning.

  3. 3

    Läs utdatan

    BMP-tecken ger fyrsiffriga escapes i `\u0041`-stil; tecken över U+FFFF använder ES6-formen `\u{...}`.

  4. 4

    Kopiera in i din kod

    Lägg resultatet i en JavaScript-sträng, ett JSON-literal, en konfigurationsfil eller en testfixtur.

Escape-syntax mellan språk

Olika språk stavar samma idé olika. Omvandlaren matar ut den vanliga JavaScript/JSON-formen, men här är vad du översätter till när du skriver samma tecken någon annanstans.

Escape-syntax per språk

Språk BMP (<= U+FFFF) Kompletterande (> U+FFFF)
JavaScript \u00E9 \u{1F600} (ES6+)
JSON \u00E9 Surrogatpar \uD83D\uDE00
Python \u00e9 \U0001F600
Java \u00e9 Surrogatpar
C / C++ \u00e9 \U0001F600
Ruby \u00e9 \u{1F600}
Rust \u{00e9} \u{1F600}
HTML-entitet &#xE9; &#x1F600;
CSS \0000e9 \1F600

Varför emoji behöver den långa formen

Det grundläggande flerspråkiga planet (BMP) täcker U+0000 till U+FFFF, allt får plats i en enda 16-bitsenhet, vilket den gamla \uXXXX-syntaxen designades för. Emoji bor mestadels i plan 1 (U+1F000 och uppåt), som inte får plats i fyra hexsiffror. Två alternativ:

  1. ES6-klamrar, \u{1F600} accepterar valfri längd.
  2. UTF-16-surrogatpar, två \uXXXX-escapes för ett tecken. JSON-tolkar accepterar detta, och det är vad JSON-kodare oftast matar ut.

Båda avkodas till samma sträng, men surrogatpar är ömtåliga: att skära en sträng mellan det höga och låga surrogatet ger dig ogiltig UTF-16.

Vanliga frågor

Fyra hexsiffror toppar vid U+FFFF. Emoji börjar vid U+1F000, så de behöver ES6-klammerformen \u{...}, eller ett UTF-16-surrogatpar om du sitter fast på äldre mål. Det här verktyget använder klamrar för allt över U+FFFF.

Inte som ett par. Avkodaren förstår klammerformen \u{1F600} och fyrsiffriga \uXXXX-escapes, men den sätter inte ihop ett UTF-16-surrogatpar (formen med två escapes som JSON använder) till en enda emoji: varje halva avkodas för sig och går inte att återskapa. Klistra in klammerformen \u{...} för allt över U+FFFF, vilket är precis vad kodaren producerar.

Nej. En escape som \u00E9 representerar teckenpunkten U+00E9, inte UTF-8-bytesekvensen (som skulle vara C3 A9). För den råa byte-vyn, använd verktyget Unicode-uppslagning som visar UTF-8-byte i HEX.

Omvandlingen sker på serversidan inom den här förfrågan, men inget behålls: ingen loggning, ingen lagring av strängarna du omvandlar.

Relaterade verktyg

Verktyget finns på andra språk