Cara menggunakan
- Pilih Encode untuk mengamankan teks bagi HTML, atau Decode untuk mengubah entitas kembali menjadi karakter.
- Saat melakukan encoding, pilih apakah huruf beraksen dan simbol akan dibiarkan apa adanya atau diubah menjadi entitas.
- Ketik atau tempel teks Anda; hasilnya akan langsung diperbarui.
- Salin hasilnya, atau gunakan “Gunakan output sebagai input” untuk memastikan hasilnya dapat didekode kembali seperti semula.
Cara kerja
Dalam HTML, beberapa karakter memiliki makna khusus: < mengawali tag, & mengawali entitas, sedangkan " atau ' mengakhiri nilai atribut. Agar ditampilkan sebagai teks, karakter tersebut harus ditulis sebagai referensi karakter: < untuk <, > untuk >, & untuk &, " untuk " dan ' untuk '. Apostrof menggunakan bentuk numerik karena ' tidak didefinisikan dalam HTML 4.
Semua karakter lainnya, termasuk huruf beraksen, teks Mandarin, dan emoji, dapat ditulis langsung jika halaman disimpan dan disajikan sebagai UTF-8, yang merupakan standar untuk situs modern. Karakter hanya perlu dikonversi menjadi entitas untuk sistem yang tidak mendukung UTF-8 dengan baik, seperti beberapa templat email atau basis data lama. Anda dapat memilih entitas bernama seperti é jika tersedia nama umum (dengan bentuk numerik sebagai alternatif untuk karakter lainnya), atau referensi numerik seperti é untuk setiap karakter.
Dekode tidak menggunakan parser HTML browser. Proses ini menggunakan tabel bawaan yang berisi semua 252 entitas bernama dari HTML 4.01, ' dan sekitar 30 nama umum HTML5, serta referensi desimal dan heksadesimal. Referensi numerik mengikuti aturan HTML5: �, nilai surrogate, dan nilai di atas U+10FFFF akan menjadi karakter pengganti �, sedangkan nilai 128–159 dibaca sebagai Windows-1252, sehingga – menjadi tanda pisah en. Beberapa nama lama seperti & dan © juga diterima tanpa titik koma penutup, seperti pada browser. HTML5 mendefinisikan lebih dari 2.000 nama; nama langka yang tidak ada dalam tabel dibiarkan apa adanya dan dicantumkan.
Melakukan escaping pada teks sebelum memasukkannya ke HTML merupakan perlindungan penting terhadap cross-site scripting (XSS), tetapi cara ini hanya tepat untuk konten elemen dan nilai atribut yang diapit tanda kutip. Teks yang ditempatkan di dalam blok <script>, atribut style, atau URL memerlukan escaping yang berbeda.
Contoh
Menampilkan kode di halaman web
Untuk menampilkan <div class="box"> sebagai teks dalam postingan blog, encode menjadi <div class="box">. Browser akan menampilkan tag aslinya sebagai teks, bukan membuat elemen.
Menyiapkan teks untuk templat email lama
Dengan opsi “Named entities where available”, “Café – 5 €” menjadi Café – 5 €, yang ditampilkan dengan benar meskipun email dikirim menggunakan set karakter non-UTF-8.
Membersihkan teks hasil scraping atau ekspor
Ekspor CMS berisi Fish & Chips – £9. Setelah didekode, hasilnya Fish & Chips – £9, siap ditempel ke spreadsheet.
Pertanyaan yang sering diajukan
Karakter apa saja yang harus di-escape dalam HTML?
Dalam konten elemen, & dan < harus di-escape (sebaiknya > juga). Di dalam nilai atribut, escape juga karakter tanda kutip yang mengapit nilainya. Meng-escape kelima karakter (& < > " ') di mana saja adalah aturan sederhana dan aman yang digunakan alat ini.
Apa perbedaan entitas bernama dan entitas numerik?
Entitas bernama seperti © lebih mudah dibaca, tetapi hanya tersedia untuk sekumpulan karakter yang terbatas. Referensi numerik seperti © (desimal) atau © (heksadesimal) berlaku untuk semua karakter Unicode, termasuk emoji.
Mengapa hasil dekode tampak seperti spasi?
adalah spasi tanpa putus (U+00A0). Tampilannya seperti spasi biasa, tetapi mencegah pergantian baris dan tidak diringkas oleh HTML. Karakter ini berbeda dari spasi biasa, yang penting saat membandingkan atau menelusuri teks.
Apakah saya perlu mengodekan huruf beraksen seperti é?
Tidak perlu jika halaman Anda menggunakan UTF-8 (<meta charset="utf-8">), seperti hampir semua halaman modern. Tetap gunakan setelan default agar hanya lima karakter khusus yang di-escape.
Apakah encoding cukup untuk mencegah XSS?
Cukup untuk teks tak tepercaya yang dimasukkan ke dalam konten elemen HTML atau nilai atribut yang diapit tanda kutip. Namun, ini tidak cukup untuk kode JavaScript, CSS, atribut tanpa tanda kutip, atau URL seperti href="javascript:…", yang memerlukan penanganan khusus sesuai konteksnya.
Privasi
Encoding dan decoding dilakukan di browser Anda menggunakan operasi string biasa; teks Anda tidak pernah dirender sebagai HTML, diunggah, disimpan, atau disertakan dalam analitik.