Bahasa Indonesia banyak memakai tanda petik tunggal sebagai bagian kata, bukan hanya sebagai pembuka kutipan — misalnya pada penulisan informal seperti "'nggak' bisa" atau nama tempat dengan apostrof. Jika teks seperti Dia bilang "nggak apa-apa" disisipkan ke dalam JSON, tanda kutip ganda di dalamnya harus di-escape menjadi Dia bilang \"nggak apa-apa\", kalau tidak nilai JSON akan terpotong di tengah kalimat dan menghasilkan JSON yang tidak valid.
Escaping dalam string JavaScript/JSON
Dalam literal string JS dan di JSON, karakter khusus di-escape dengan garis miring terbalik: \" untuk tanda kutip, \n untuk baris baru, \\ untuk garis miring terbalik itu sendiri. JSON juga mewajibkan semua string memakai tanda kutip ganda — berbeda dari JS, yang juga mengizinkan tanda kutip tunggal.
Escaping dalam perintah shell
Di command line, karakter khusus mencakup spasi, tanda kutip, tanda dolar, tanda bintang, dan lainnya — semuanya punya arti khusus bagi shell. Spasi di dalam argumen perintah harus di-escape atau seluruh argumen dibungkus tanda kutip, kalau tidak shell akan memecahnya menjadi dua argumen terpisah.
Escaping dalam ekspresi reguler
Dalam ekspresi reguler, karakter seperti titik, tanda bintang, atau tanda kurung punya arti khusus (karakter apa saja, kuantifier, grup). Untuk mencocokkannya secara harfiah, bukan sebagai metakarakter, tanda garis miring terbalik diletakkan di depannya: \. mencocokkan titik harfiah, bukan "karakter apa saja".
Mengapa setiap konteks butuh escaping sendiri
Kesalahan "escaping ganda" atau "escaping kurang" adalah salah satu penyebab paling umum kode rusak saat menyisipkan teks pengguna (misalnya path file yang mengandung spasi) ke dalam perintah atau string. Escaping yang benar bergantung pada di mana persisnya teks itu disisipkan, bukan pada teksnya sendiri.
Untuk apa ini dibutuhkan
- Menyiapkan teks pengguna berbahasa Indonesia, termasuk tanda kutip di dalam kalimat, agar bisa disisipkan dengan aman ke dalam request JSON.
- Menyusun perintah shell dengan argumen dinamis tanpa risiko command injection.
- Meng-escape karakter khusus sebelum teks dipakai sebagai pola harfiah dalam ekspresi reguler.
Escaping ganda dalam konteks bertingkat
Ketika teks melewati dua konteks berturut-turut — misalnya sebuah string disisipkan ke JSON, lalu JSON itu diteruskan sebagai argumen perintah shell — escaping harus diterapkan dengan urutan yang benar: dulukan konteks dalam (JSON), baru konteks luar (shell). Urutan yang terbalik atau satu tingkat yang terlewat adalah penyebab umum mengapa string yang "sudah di-escape dengan benar" tetap rusak di praktiknya.