DevToolPal
ID

Escape dan Unescape String

Escape atau unescape string untuk JSON, JavaScript, Java/C#, Python, SQL, CSV, XML, ekspresi reguler, dan perintah shell.

Berjalan lokal, tidak pernah diunggah

Opsi

Mode

Input

0 karakter · 0 B

Output

0 karakter · 0 B

Apa fungsinya

Alat escape string mengubah teks menjadi bentuk yang bisa diletakkan di dalam literal string, dan mengubah string yang sudah di-escape kembali menjadi teks biasa. Ada sembilan target: JSON, JavaScript, Java dan C#, Python, literal string SQL, kolom CSV, teks dan atribut XML, ekspresi reguler, serta perintah shell POSIX. Masing-masing mengikuti aturan bahasanya, jadi hasilnya bisa langsung ditempel ke kode tanpa galat sintaksis.

Kegunaan umum: menaruh pesan multibaris atau path Windows di berkas konfigurasi JSON, menyisipkan potongan HTML ke string JavaScript, mengutip nama berkas berspasi untuk skrip shell, atau mengubah istilah pencarian literal seperti price (USD) menjadi ekspresi reguler yang mencocokkannya persis.

Cara menggunakan

  1. Pilih Escape atau Unescape.
  2. Pilih bahasa atau format.
  3. Tempel teks Anda di input atau klik Contoh. Hasilnya diperbarui saat Anda mengetik.
  4. Salin keluaran, atau tekan Gunakan sebagai input untuk membalik konversi dan memastikan hasilnya kembali ke aslinya.

Untuk JSON, JavaScript, Java/C#, dan Python, Anda juga bisa meng-escape semua karakter non-ASCII sehingga didapat string ASCII murni yang aman di encoding berkas apa pun.

Contoh

Baris yang sama di-escape untuk target berbeda:

Input:       He said "hi" in C:\Temp
JSON:        He said \"hi\" in C:\\Temp
SQL:         He said "hi" in C:\Temp            (only ' is doubled)
Regex:       He said "hi" in C:\\Temp
Shell:       'He said "hi" in C:\Temp'

Aturan tiap format

  • JSON: meng-escape tanda kutip, garis miring terbalik, dan karakter kontrol, persis seperti JSON.stringify.
  • JavaScript: juga meng-escape kutip tunggal, backtick, tab vertikal, serta pemisah baris U+2028 dan U+2029.
  • Java / C#: escape garis miring terbalik dan \uXXXX; saat unescape juga menerima escape oktal Java serta \x dan \U dari C#.
  • Python: escape garis miring terbalik dengan \x, \u, dan \U; escape yang tidak dikenal dibiarkan apa adanya.
  • SQL: menggandakan kutip tunggal untuk literal string SQL standar.
  • CSV: membungkus nilai dengan kutip ganda dan menggandakan kutip di dalamnya jika nilai berisi koma, kutip, baris baru, atau spasi di tepinya.
  • XML: mengganti lima entitas bawaan; saat unescape juga mendekode referensi karakter numerik.
  • Ekspresi reguler: menaruh garis miring terbalik sebelum setiap karakter bermakna khusus, sehingga pola mencocokkan teks secara harfiah.
  • Shell: membungkus nilai dengan kutip tunggal, yang mematikan semua ekspansi di shell POSIX, dan menulis kutip di dalamnya sebagai '\''.

FAQ

› Apa arti meng-escape string?

Beberapa karakter punya makna khusus di dalam literal string, seperti tanda kutip yang mengakhirinya atau baris baru. Escape menggantinya dengan urutan yang aman, biasanya garis miring terbalik diikuti satu huruf, sehingga string bisa ditempel ke kode, kueri, atau berkas tanpa merusaknya.

› Apakah tanda kutip di sekitar string ikut ditempel?

Tidak. Tempel isinya saja. Hasil escape adalah bagian yang berada di antara tanda kutip di kode Anda. Untuk CSV dan shell, yang mengutip nilai utuh, alat ini menambahkan tanda kutip luar sendiri bila diperlukan.

› Apakah escape SQL cukup untuk mencegah SQL injection?

Menggandakan kutip tunggal menghasilkan literal string yang valid, berguna saat menulis kueri secara manual atau menyiapkan skrip migrasi. Di kode aplikasi, selalu gunakan kueri berparameter atau prepared statement alih-alih menyusun SQL dari string.

› Mengapa unescape melaporkan urutan escape yang tidak dikenal?

Setiap bahasa menerima escape yang berbeda. JSON, misalnya, tidak punya \x atau \0, jadi alat ini menunjukkan posisi urutan pertama yang akan ditolak oleh bahasa yang dipilih. Python membiarkan escape tak dikenal seperti \d apa adanya, sama seperti interpreter Python.

› Apakah teks saya diunggah?

Tidak. Escape dan unescape berjalan di peramban Anda dan tidak ada yang dikirim ke server.