Enkoder entitas HTML
Escape teks menjadi entitas HTML agar karakter markup tetap utuh, di browser Anda.
Berjalan sepenuhnya di browser Anda. Tidak ada yang diunggah, dicatat, atau disimpan.
Lima karakter tidak bisa muncul apa adanya di HTML tanpa mengubah makna markup: ampersand, dua kurung sudut, dan dua jenis tanda kutip. Meng-escape-nya adalah yang mengubah sepotong teks menjadi teks yang akan ditampilkan browser, bukan dipatuhinya.
Cara kerja
Mode minimal hanya meng-escape lima karakter itu. Hampir selalu inilah pilihan yang tepat: jika halaman Anda UTF-8 dan file Anda UTF-8, huruf beraksen tidak perlu di-escape, dan meng-escape-nya hanya membuat kode sumber lebih sulit dibaca tanpa manfaat apa pun.
Entitas bernama menggantikan setiap karakter yang diberi nama oleh HTML 4.01 — total 252, é sebagai é, © sebagai ©. Gunakan jika keluarannya harus melewati sesuatu yang merusak semua karakter di atas ASCII, seperti sistem email lama atau kolom basis data dengan collation yang salah.
Referensi numerik memberi jaminan yang sama berdasarkan code point, bukan nama, jadi berfungsi untuk karakter apa pun, bukan hanya 252 yang punya nama. Referensi ini ditulis dalam heksadesimal dengan titik koma penutup, yang diterima semua parser.
Contoh
| Kasus | Masukan | Hasil |
|---|---|---|
| Tag yang harus ditampilkan, bukan dijalankan | <script>alert(1)</script> | <script>alert(1)</script> |
| Ampersand di dalam nilai | Tom & Jerry | Tom & Jerry |
| Huruf beraksen, dengan nama | café | café |
Pertanyaan umum
Apakah escape di sini cukup untuk membuat input pengguna aman?
Untuk teks di antara tag, dan untuk nilai atribut di dalam tanda kutip, ya: tanda kutipnya juga di-escape. Di tempat lain, tidak: nilai yang masuk ke URL, blok style, atau blok script memerlukan escape sendiri, dan entitas HTML adalah alat yang salah untuk ketiganya. Lakukan escape di titik keluaran, sesuai konteks keluaran itu, di kode Anda — bukan dengan menempelkan teks ke halaman web.
Mengapa apostrof di-escape sebagai ' dan bukan '?
' tidak ada di HTML 4.01. Entitas itu ditambahkan di XHTML lalu di HTML5, dan browser lama menampilkannya apa adanya. Bentuk numerik selalu berfungsi di mana saja.
Entitas bernama mana saja yang didukung?
Ke-252 entitas HTML 4.01. HTML5 mendefinisikan sekitar dua ribu lagi, hampir semuanya matematis, dan itu tidak disertakan di sini. Apa pun yang tidak punya nama dalam himpunan itu dibiarkan apa adanya di mode bernama, atau di-escape berdasarkan code point di mode numerik.
Apakah aksen perlu di-escape di situs modern?
Tidak. Jika halaman menyatakan UTF-8 dan file disimpan sebagai UTF-8, é ya tetap é. Entitas bernama gunanya untuk meloloskan teks melewati sistem yang tidak bersih UTF-8.
Perlu diketahui
- Semuanya terjadi di browser Anda. Apa yang Anda tempel tidak diunggah, tidak dicatat, dan tidak disimpan.