Skip to content

Konverter Unicode

Tempel bentuk Unicode apa pun, baca kembali sebagai teks. Escape \uXXXX, kurung kurawal ES6, titik kode U+, dan deretan byte dikenali otomatis, lalu semua bentuk lain ditampilkan sekaligus. Berjalan di browser, tanpa unggah.

Tanpa Pelacakan Berjalan di Browser Gratis

Semuanya berjalan di browser Anda — input Anda tidak pernah diunggah, dicatat, atau disimpan.

0 karakter
Teks terbaca
Hasil muncul di sini
Normalisasi
Semua representasi sekaligus
JavaScript / Java / JSON uXXXX
ES6 u{XXXXX}
Python uXXXX / UXXXXXXXX
Go uXXXX / UXXXXXXXX
Rust u{XXXXX}
Titik kode U+XXXX
HTML desimal &#NNNNN;
HTML heksadesimal &#xXXXX;
Ter-encode URL %XX
CSS XXXXXX
Byte UTF-8 hex
Unit kode UTF-16 hex
UTF-32 hex
Byte oktal NNN
Titik kode desimal NNNNN
Karakter per karakter
Karakter Titik kode UTF-8 UTF-16 Aksara Kategori Nama
Hasil muncul di sini

Referensi singkat

Karakter Titik kode JavaScript / Java / JSON Byte UTF-8 Ter-encode URL HTML desimal
中文 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  
Setiap konversi di tabel referensi diperiksa silang antara dua implementasi independen sebelum dipublikasikan. — Tim Engineering Go Tools · Aug 27, 2026

Perilaku diverifikasi langsung terhadap Node, Python, Java, Go, dan mesin browser sungguhan, bukan diasumsikan dari dokumentasi.

Apa Itu Escape Unicode?

Escape Unicode menuliskan sebuah karakter hanya dengan ASCII, supaya karakter itu selamat melewati sistem yang tidak sanggup membawa karakter aslinya. Bentuk escape-nya berbeda di hampir setiap bahasa: JavaScript dan JSON memakai empat digit heksadesimal per unit kode UTF-16, ES6 dan Rust menampung satu titik kode utuh di dalam kurung kurawal, Python dan Go menambahkan bentuk lebar delapan digit, CSS cukup memakai garis miring terbalik, sedangkan HTML punya referensi numerik dan bernama sendiri. Semuanya menggambarkan titik kode yang sama — itulah sebabnya satu string yang sama bisa sampai ke tangan Anda dalam setengah lusin rupa.

中文
  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

Apa yang Bisa Dilakukan Konverter Ini

Bentuknya dikenali otomatis

Escape, kurung kurawal, escape lebar, titik kode, entitas, percent-encoding, dan deretan byte terdeteksi tanpa perlu ganti mode.

Tahan terhadap input campuran

Hanya bagian yang ter-encode yang berubah. Tanda baca JSON, path Windows, dan garis miring terbalik yang sudah ter-escape dibiarkan apa adanya.

Semua representasi sekaligus

Satu kali tempel menghasilkan seluruh tabel, jadi Anda tidak pernah perlu mengonversi dua kali untuk pindah dari satu bahasa ke bahasa lain.

Benar menurut masing-masing bahasa

Karakter di luar BMP ditulis sebagai escape lebar untuk Python dan Go, dua bahasa yang justru gagal kalau diberi pasangan surrogate.

Pemeriksaan sampai tingkat karakter

Titik kode, byte UTF-8 dan UTF-16, aksara dan kategori untuk setiap karakter, ditambah nama Unicode-nya kalau karakter itu memang punya nama.

Memunculkan karakter tak terlihat

Byte order mark, zero-width joiner, dan spasi tanpa putus diberi pengganti yang kelihatan.

Contoh

Decode satu baris log tanpa mengutak-atik sisanya

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

Hanya urutan escape yang berubah. Tanda kutip, nama kunci, dan angka tetap persis seperti semula, jadi Anda bisa menempelkan satu baris log utuh alih-alih memungut escape-nya satu per satu.

Empat bentuk berbeda dalam satu kali tempel

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

Titik kode, escape kurung kurawal ES6, entitas HTML, dan pasangan surrogate — semuanya terdecode dalam satu jalan. Tidak ada mode yang perlu dipilih dan tidak ada yang perlu diatur lebih dulu.

Satu karakter, semua bentuk penulisannya

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

Karakter yang sama, ditulis seperti yang diharapkan tiap bahasa. Perhatikan Python dan Go butuh bentuk lebar untuk karakter di luar BMP — pasangan surrogate tidak akan lolos kompilasi di Go dan memicu UnicodeEncodeError di Python.

Cara Menggunakan

  1. 1

    Tempel

    Masukkan urutan escape, titik kode, entitas, byte ter-encode, atau teks biasa. Tidak perlu memberi tahu itu yang mana.

  2. 2

    Baca hasilnya

    Teks terbacanya langsung muncul, disertai catatan representasi mana saja yang dikenali.

  3. 3

    Salin bentuk yang Anda butuhkan

    Semua representasi terdaftar di bawah hasil, masing-masing dengan tombol salinnya sendiri.

  4. 4

    Bongkar kalau ada yang janggal

    Buka tabel karakter untuk melihat titik kode, byte, aksara, dan nama, lalu aktifkan Tampilkan untuk memunculkan karakter tak terlihat.

Kesalahan yang Perlu Diketahui

Menulis pasangan surrogate padahal bahasanya minta escape lebar

Pasangan yang jalan di JSON berubah jadi dua potongan rusak di Python dan menolak dikompilasi di Go. Gunakan bentuk lebar untuk karakter di atas U+FFFF.

✗ Salah
\ud83d\ude00
✓ Benar
\U0001F600

Mendecode referensi numerik HTML sebagai titik kode biasa

Referensi antara 128 dan 159 harus dibaca lewat windows-1252. Implementasi naif mengubah tanda kutip tunggal kanan menjadi karakter kontrol tak terlihat — itulah sebabnya pada ekspor sistem lama posisi-posisi itu tidak menampilkan apa pun.

✗ Salah
’  ->  U+0092
✓ Benar
’  ->  U+2019

Memakai escape CSS pendek tepat sebelum karakter heksadesimal

Parser terus melahap digit heksadesimal, sehingga escape dan karakter berikutnya menyatu menjadi satu titik kode yang salah. Padatkan ke enam digit.

✗ Salah
\4E2Da
✓ Benar
\004E2Da

Kapan Anda Membutuhkannya

Membaca log
Log server dan respons API kerap datang dengan bagian non-ASCII yang sudah ter-escape. Tempel barisnya dan langsung baca, tanpa perlu diedit dulu.
Memindahkan string antar bahasa
Salin escape dalam bentuk persis yang diterima bahasa tujuan, alih-alih mengonversi manual antara pasangan surrogate dan escape lebar.
Mengejar bug encoding
Saat perbandingan gagal atau basis data menolak sebuah nilai, tabel karakter menunjukkan persis titik kode dan byte mana yang terlibat.
Membersihkan konten hasil tempel
Teks yang disalin dari halaman web atau dokumen sering membawa karakter tak terlihat. Temukan sebelum sampai ke produksi.

Detail Teknis

Yang di-escape adalah unit kode, bukan karakter
JavaScript, Java, dan JSON meng-escape unit kode UTF-16, jadi karakter di atas U+FFFF butuh dua escape. Python dan Go justru menyediakan bentuk delapan digit yang menampung titik kodenya secara langsung.
Referensi numerik HTML dipetakan ulang
Spesifikasi HTML mengharuskan referensi numerik di rentang 128 sampai 159 dibaca lewat windows-1252, bukan sebagai titik kode. Jadi referensi 146 adalah tanda kutip tunggal kanan, bukan karakter kontrol tak terlihat.
Escape CSS perlu dipadatkan
Escape CSS melahap sampai enam digit heksadesimal, sehingga escape pendek yang diikuti karakter heksadesimal menyatu menjadi satu titik kode yang salah. Memadatkannya ke enam digit menghilangkan ambiguitas, dan spasi yang mengikutinya dimakan sebagai penutup.
Surrogate tanpa pasangan berperilaku beda di mana-mana
Surrogate yang tidak berpasangan dipertahankan oleh serialisasi JSON, diganti diam-diam oleh TextEncoder, ditolak oleh percent-encoding, ditulis sebagai tanda tanya oleh Java, dan memicu error di Python.

Praktik Terbaik

Normalisasi dulu sebelum membandingkan
Lipat kedua sisi ke bentuk normalisasi yang sama sebelum membandingkan atau menghapus duplikat, terutama untuk nama orang dan identifier.
Pakai bentuk lebar untuk Python dan Go
Pasangan surrogate sah di JSON tapi rusak di kedua bahasa itu. Gunakan escape delapan digit ketika targetnya kode sumber Python atau Go.
Periksa karakter tak terlihat sedini mungkin
Validasi input yang ditempel di batas masuk, bukan setelah repot menelusuri ketidakcocokan di kemudian hari.
Simpan nilai aslinya
Decoding tidak selalu bisa dibalik tanpa kehilangan data begitu karakter pengganti muncul. Simpan nilai mentahnya sampai Anda yakin.

Pertanyaan yang Sering Diajukan

Apa arti \u4e2d\u6587 dan bagaimana cara membacanya?
Setiap \uXXXX adalah satu unit kode UTF-16 yang ditulis dalam heksadesimal. \u4e2d adalah U+4E2D dan \u6587 adalah U+6587; digabung, keduanya menjadi 中文, kata Tionghoa yang berarti bahasa Tionghoa. Tempel seluruh string ke kolom input di atas dan teks terbacanya langsung muncul, sementara JSON atau teks log di sekelilingnya dibiarkan utuh.
Garis miring terbaliknya hilang dan saya cuma punya u4e2d. Masih bisa didecode?
Bisa. Terminal dan pipeline log sering menelan garis miring terbalik. String telanjang u4e2du6587 tetap dikenali dan didecode, sementara kata biasa yang kebetulan mengandung huruf u dibiarkan apa adanya. Kalau garis miring terbaliknya masih utuh, tidak perlu diapa-apakan juga — kedua bentuk sama-sama dikenali.
Kenapa satu emoji ditulis sebagai dua escape \uXXXX?
Karakter di atas U+FFFF tidak muat dalam satu unit kode UTF-16, jadi JavaScript, Java, dan JSON menulisnya sebagai sepasang surrogate. Satu wajah tersenyum adalah 1 titik kode, 2 unit kode UTF-16, dan 4 byte UTF-8. Ketiga angka itu terlihat di tabel karakter.
Bagaimana arah sebaliknya, mengubah teks menjadi escape Unicode?
Ketik atau tempel teks biasa, lalu baca tabel di bawah hasilnya. Semua representasi diproduksi sekaligus, jadi Anda bisa menyalin bentuk persis yang diminta bahasa Anda tanpa perlu mengonversi dua kali.
Dua string kelihatan identik tapi kode saya bilang keduanya berbeda. Kenapa?
Kemungkinan besar bentuk normalisasinya berbeda. Huruf beraksen bisa berupa satu titik kode, bisa juga huruf dasar ditambah tanda gabung; keduanya tampil sama persis tapi nilainya tidak sama. Pakai tombol NFC untuk melipat keduanya ke bentuk yang sama. Perlu diingat, normalisasi juga bukan operasi kosong untuk aksara CJK — ideograf kompatibilitas berubah di bawah NFC biasa.
Ada sesuatu yang tak terlihat di string saya dan itu merusak kode. Bagaimana menemukannya?
Aktifkan Tampilkan karakter tak terlihat. Byte order mark, spasi lebar-nol, spasi tanpa putus, dan variation selector semuanya diberi pengganti yang kelihatan, dan tabel karakter menyebutkan nama masing-masing beserta byte-nya. Teks yang disalin dari halaman web atau dokumen sering membawa karakter semacam ini.
Apakah data yang saya tempel diunggah ke suatu tempat?
Tidak. Konversi berjalan di browser Anda tanpa satu pun permintaan jaringan. Tidak ada yang diunggah, dicatat, atau disimpan, jadi menempelkan log produksi pun aman.