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.
Semuanya berjalan di browser Anda — input Anda tidak pernah diunggah, dicatat, atau disimpan.
Hasil muncul di sini 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 |   |
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
Tempel
Masukkan urutan escape, titik kode, entitas, byte ter-encode, atau teks biasa. Tidak perlu memberi tahu itu yang mana.
- 2
Baca hasilnya
Teks terbacanya langsung muncul, disertai catatan representasi mana saja yang dikenali.
- 3
Salin bentuk yang Anda butuhkan
Semua representasi terdaftar di bawah hasil, masing-masing dengan tombol salinnya sendiri.
- 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.
\ud83d\ude00
\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.
’ -> U+0092
’ -> 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.
\4E2Da
\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?
Garis miring terbaliknya hilang dan saya cuma punya u4e2d. Masih bisa didecode?
Kenapa satu emoji ditulis sebagai dua escape \uXXXX?
Bagaimana arah sebaliknya, mengubah teks menjadi escape Unicode?
Dua string kelihatan identik tapi kode saya bilang keduanya berbeda. Kenapa?
Ada sesuatu yang tak terlihat di string saya dan itu merusak kode. Bagaimana menemukannya?
Apakah data yang saya tempel diunggah ke suatu tempat?
Alat Terkait
Lihat semua alat →Decode & Encode Base64 Online — Konversi Instan di Browser
Encoding & Pemformatan
Decode dan encode Base64 online gratis. Konversi real-time dengan dukungan UTF-8 dan emoji. 100% privat di browser Anda. Tanpa pendaftaran.
Konverter Base64 ke Gambar
Encoding & Pemformatan
Decode string Base64 atau data URI kembali menjadi gambar di browser. Pratinjau, baca dimensi & MIME, lalu unduh sebagai PNG, JPG, GIF, SVG. Tanpa upload.
Konverter CSV ke JSON
Encoding & Pemformatan
Konversi CSV ke JSON di browser. RFC 4180, infer tipe, baris header, aman big-int. 100% privat, tanpa unggah.
Konverter .env ke JSON
Encoding & Pemformatan
Tempel file .env, dapatkan JSON seketika. Password, kunci API, dan token tak pernah keluar dari browser — parser dotenv 100% privat, tanpa unggah, gratis.
Decoder Entitas HTML Gratis — Unescape HTML
Encoding & Pemformatan
Decode entitas HTML dan unescape HTML online — gratis, tanpa daftar, 100% di browser Anda. Mengubah referensi named, desimal & hex kembali menjadi karakter; tidak pernah diunggah.
Encoder Entitas HTML Gratis — Escape HTML
Encoding & Pemformatan
Encode entitas HTML dan escape karakter khusus (< > & " ') online — gratis, tanpa daftar, 100% di browser Anda. Output named, desimal, atau hex; tidak pernah diunggah.