Konverter Unicode ke UTF-8

Ubah teks Unicode literal menjadi sintaks escape \u00E9, \u{1F600} yang disematkan bahasa pemrograman dalam kode sumber, atau tempel string ber-escape dan dekode kembali ke karakter aslinya. Berfungsi untuk karakter BMP (escape 4 digit) dan plane suplementer seperti emoji (\u{...} panjang variabel).

Cara mengonversi antara escape Unicode dan UTF-8

  1. 1

    Pilih arah

    Kodekan karakter menjadi escape `\u`, atau dekode string ber-escape kembali menjadi teks.

  2. 2

    Tempel input Anda

    Teks polos untuk pengodean; string dengan sekuens `\uXXXX` atau `\u{XXXXX}` untuk pendekodean.

  3. 3

    Baca output

    Karakter BMP menghasilkan escape empat digit gaya `\u0041`; karakter di atas U+FFFF memakai bentuk ES6 `\u{...}`.

  4. 4

    Salin ke kode Anda

    Jatuhkan hasilnya ke string JavaScript, literal JSON, file config, atau test fixture.

Sintaks escape lintas bahasa

Bahasa berbeda mengeja gagasan yang sama secara berbeda. Konverter menghasilkan bentuk JavaScript/JSON umum, tetapi inilah yang Anda terjemahkan saat menulis karakter yang sama di tempat lain.

Sintaks escape menurut bahasa

Bahasa BMP (<= U+FFFF) Suplementer (> U+FFFF)
JavaScript \u00E9 \u{1F600} (ES6+)
JSON \u00E9 Surrogate pair \uD83D\uDE00
Python \u00e9 \U0001F600
Java \u00e9 Surrogate pair
C / C++ \u00e9 \U0001F600
Ruby \u00e9 \u{1F600}
Rust \u{00e9} \u{1F600}
Entitas HTML &#xE9; &#x1F600;
CSS \0000e9 \1F600

Mengapa emoji butuh bentuk panjang

Basic multilingual plane (BMP) mencakup U+0000 sampai U+FFFF, semuanya muat dalam satu unit 16-bit, yang menjadi tujuan sintaks lama \uXXXX. Emoji sebagian besar hidup di plane 1 (U+1F000 ke atas), yang tidak muat dalam empat digit heksadesimal. Dua opsi:

  1. Kurung kurawal ES6, \u{1F600} menerima panjang apa pun.
  2. Surrogate pair UTF-16, dua escape \uXXXX untuk satu karakter. Parser JSON menerima ini, dan itulah yang biasa dipancarkan encoder JSON.

Keduanya didekode ke string yang sama, tetapi surrogate pair rapuh: memotong string di antara surrogate tinggi dan rendah memberi Anda UTF-16 tidak valid.

Pertanyaan yang Sering Diajukan

Empat digit heksadesimal mentok di U+FFFF. Emoji mulai di U+1F000, jadi mereka butuh bentuk kurung ES6 \u{...}, atau surrogate pair UTF-16 jika Anda terjebak pada target lama. Alat ini memakai kurung untuk apa pun di atas U+FFFF.

Tidak sebagai pasangan. Dekoder memahami bentuk kurung \u{1F600} dan escape empat digit \uXXXX, tetapi ia tidak menggabungkan kembali surrogate pair UTF-16 (bentuk dua-escape yang dipakai JSON) menjadi satu emoji: setiap paruh didekode sendiri dan tidak dapat direkonstruksi. Untuk apa pun di atas U+FFFF, tempel bentuk kurung \u{...}, yang persis dihasilkan oleh encoder.

Tidak. Escape seperti \u00E9 mewakili titik kode U+00E9, bukan sekuens byte UTF-8 (yang akan menjadi C3 A9). Untuk tampilan byte mentah, gunakan alat Unicode Lookup yang menunjukkan byte UTF-8 dalam HEX.

Konversi terjadi di sisi server dalam request ini, tetapi tidak ada yang disimpan: tanpa pencatatan, tanpa penyimpanan string yang Anda konversi.

Alat Terkait

Alat ini tersedia dalam bahasa lain