Escape / unescape Unicode
Tempel teks dan escape muncul seketika — atau tempel \u4F60 untuk mendapatkan karakternya kembali. Tanpa tombol, tanpa unggahan.
Cara menggunakan
- Pilih Escape atau Unescape — kotak masukan tetap apa adanya, jadi Anda bisa melihat teks yang sama dari dua sisi tanpa mengetik ulang.
- Escape: ketik atau tempel teks dan escape langsung muncul. Pilih sintaks yang dipakai bahasa tujuan Anda: \uXXXX (Java, JSON, .properties — karakter di atas BMP menjadi pasangan surrogate UTF-16), \u{X} (JavaScript ES6, Rust, Swift, Ruby, PHP), \UXXXXXXXX (Python, C, Go, C#) atau U+XXXX (notasi standar Unicode).
- Pilih rentang: “Hanya non-ASCII” (bawaan) meng-escape semua di atas U+007F dan membiarkan ASCII, spasi, serta baris baru; “Semua karakter” meng-escape setiap titik kode, sehingga keluarannya ASCII murni.
- Unescape: tempel teks berisi escape untuk mendapatkan karakternya kembali. Baris di atas hasil menyebutkan berapa karakter yang terdekode dan, bila ada fragmen yang tidak terbaca, fragmen mana dan di posisi mana.
Contoh
Masukan
Café "naïve" 😀
Hasil escape
Caf\u00E9 "na\u00EFve" \uD83D\uDE00
“é” tidak punya bentuk ASCII, jadi menjadi \u00E9. “😀” adalah U+1F600, di atas BMP, sehingga sintaks \uXXXX menulisnya sebagai pasangan surrogate \uD83D\uDE00. Beralih ke \u{X} dan teks yang sama menghasilkan Caf\u{E9} "na\u{EF}ve" \u{1F600}; \UXXXXXXXX menghasilkan …\U0001F600; U+XXXX menghasilkan CafU+00E9 "naU+00EF ve" U+1F600 — spasi ganda setelah é adalah pemisah ditambah spasi yang memang sudah ada di teks. Semuanya bisa ditempel kembali ke Unescape tanpa perubahan.
Aturan, batasan, dan masalah yang diketahui
- Hanya empat sintaks yang dikenali: \uXXXX (tepat 4 digit heksadesimal), \u{X} (1–6 digit), \UXXXXXXXX (tepat 8 digit) dan U+XXXX (1–6 digit, U+ huruf besar). %uXXXX, \x{X}, \X milik CSS dan \N{NAME} tidak didukung; referensi HTML seperti 你 adalah urusan alat entitas HTML.
- \uXXXX tetap 4 digit: \u12 dan \u12345 tidak dibaca sebagai \uXXXX — \u12345 didekode sebagai U+1234 diikuti “5” literal. Tulis \u{…} bila butuh 1–6 digit.
- \uXXXX tidak punya batas karakter: \u4F60abc didekode sebagai 你abc, dan U+4F601 adalah titik kode U+4F601 (5 digit, valid), bukan U+4F60 diikuti “1”.
- Dalam U+XXXX, satu spasi setelah titik kode adalah pemisah, bukan isi: U+4F60 hello didekode sebagai 你hello. Alat ini menulis spasi setelah setiap token U+ (kecuali di akhir sekali), sehingga keluarannya dapat bolak-balik; token tulisan tangan tanpa spasi akan menempel ke digit heksadesimal berikutnya dan dihitung tidak dikenali.
- Pasangan surrogate hanya muncul pada sintaks \uXXXX, karena itulah representasi Java/JSON; \u{1F600}, \U0001F600 dan U+1F600 menulis titik kode secara langsung. High surrogate yang tidak diikuti low surrogate dibiarkan seperti ditulis dan dihitung tidak dikenali — tidak pernah diganti dengan “�”.
- Titik kode di atas U+10FFFF dan rentang surrogate itu sendiri ditolak dengan cara yang sama: dibiarkan seperti ditulis dan dihitung, bukan diam-diam diganti.
- Rentang “Hanya non-ASCII” tidak meng-escape garis miring terbalik literal: bila teks Anda sudah berisi \u4f60, Unescape akan membacanya sebagai escape. Ambiguitas itu melekat pada rentang ini — pilih “Semua karakter” bila garis miring terbalik penting.
- Dekode hanya sekali jalan: \u005Cu4F60 menjadi teks literal \u4F60, bukan 你. Tempel lagi bila benar-benar butuh dua lapis.
- Karakter kontrol yang valid didekode sebagai dirinya sendiri: \u0000 menghasilkan U+0000 (tak terlihat, tetapi bukan galat), jadi keluarannya bisa berisi karakter yang tidak dapat Anda lihat.
- Escape string seperti \n dan \t dibiarkan sebagai teks biasa dan tidak dihitung, dan literal string JSON utuh adalah urusan terpisah. Pengodean URL, HTML, dan Base64 juga alat terpisah.
- Hingga 100.000 karakter; di atas itu muncul galat alih-alih hasil terpotong. Di atas 20.000 karakter hasil diperbarui sekitar 0,6 dtk setelah Anda berhenti mengetik.
- Tanpa unggah berkas, tanpa riwayat, dan tanpa tautan berbagi yang membawa masukan Anda: semuanya berjalan di peramban dan teks tidak pernah keluar dari halaman.
Alat terkait
Yang biasanya dibutuhkan berikutnya setelah teks di-escape atau di-unescape.