Enkode / Dekode Entitas HTML
Escape teks untuk HTML atau kembalikan entitas bergaya & menjadi karakter
Tentang alat ini
Escape teks agar aman disisipkan ke dalam HTML — & menjadi &, < menjadi < — atau dekode teks yang penuh entitas kembali menjadi karakter yang terbaca, mencakup entitas bernama (→), rujukan numerik desimal (©), dan heksadesimal (©).
Pengodean menawarkan dua tingkat: lima karakter esensial yang merusak struktur HTML (& < > " '), yang sudah cukup untuk kebenaran; atau semua yang non-ASCII, berguna ketika ada rantai perkakas yang mengacak UTF-8 di suatu titik antara Anda dan halamannya. Mode khusus numerik melewatkan entitas bernama demi kecocokan maksimal dengan pengurai XML yang ketat, yang hanya menjamin lima entitas terdefinisi.
Bagian yang dipakai sehari-hari adalah pendekodenya: tempel cuplikan hasil scraping atau respons API yang bertaburan ' lalu dapatkan teks bersih. Nama entitas yang tak dikenal diloloskan apa adanya alih-alih ditebak-tebak.
Pertanyaan yang sering diajukan
- Karakter apa saja yang wajib di-escape di HTML?
- Pada isi teks: & dan <. Pada nilai atribut: ditambah karakter kutip yang membatasi atribut itu (" atau '). Meng-escape > memang kebiasaan umum tetapi tidak diwajibkan. Selebihnya boleh muncul apa adanya di dalam dokumen UTF-8.
- Apakah pengodean entitas melindungi dari XSS?
- Meng-escape lima karakter struktural memang inti dari pengodean keluaran untuk konteks HTML — tetapi hanya untuk teks HTML dan konteks atribut. URL, string JavaScript, dan CSS punya pengodean sendiri sesuai konteksnya; escape entitas saja tidak membuat injeksi sembarangan menjadi aman di sana.
- Entitas bernama atau numerik — mana yang sebaiknya dikeluarkan?
- Rujukan numerik (é) berfungsi di setiap pengurai HTML dan XML. Entitas bernama lebih enak dibaca, tetapi XML hanya mendefinisikan lima di muka, jadi é akan mematahkan alur XML/XHTML yang ketat. Kalau ragu, pilih numerik.
- Kenapa di data saya muncul &#39; (terenkode ganda)?
- Dua lapisan masing-masing mengenkode sekali: tanda & dari pengodean pertama ikut di-escape lagi pada lintasan kedua. Dekode dua kali di sini untuk memulihkan teksnya, lalu temukan dan perbaiki lapisan yang seharusnya tidak ikut mengenkode.