TL;DR: Gunakan alat HTML entity encoder dan decoder online gratis untuk konversi karakter HTML khusus secara aman dan cepat di browser. Semua pemrosesan teks dieksekusi 100% Client-Side tanpa pernah dikirimkan ke server.
<, >, dan & menjadi entitas bernama (seperti < dan >) agar aman ditampilkan tanpa dieksekusi browser, serta gunakan mode Decode HTML untuk memulihkan entitas ke bentuk teks aslinya.Ikuti langkah-langkah mudah melakukan konversi karakter HTML berikut:
& atau ") kembali menjadi simbol biasa.
&) dan diakhiri titik koma (;) yang digunakan untuk menampilkan karakter terikat HTML atau simbol non-ASCII di peramban web tanpa memicu kesalahan penafsiran dokumen atau celah XSS.Dalam bahasa pemformatan dokumen HTML, karakter tertentu memiliki makna khusus bagi mesin peramban (*browser parser*). Sebagai contoh, simbol kurang dari < dan lebih dari > digunakan khusus untuk menandai awal dan akhir dari tag HTML (seperti <p> atau <script>). Jika Anda ingin menampilkan teks <script> di dalam halaman web sebagai contoh tutorial tanpa ingin skrip tersebut dijalankan oleh browser, maka Anda wajib menggunakan **HTML Entity Encoder**.
Entitas HTML adalah urutan teks yang mewakili karakter khusus. Ketika peramban menemukan entitas seperti <, peramban tidak menafsirkan karakter tersebut sebagai pembuka tag elemen baru, melainkan merendernya sebagai teks visual < bagi pengguna. Fungsi utamanya mencakup dua hal: menampilkan karakter reserved HTML dan menampilkan simbol khusus yang tidak ada pada papan ketik standar (seperti simbol hak cipta © atau mata uang euro €).
Penggunaan konversi karakter HTML melalui proses sanitasi (*output escaping*) adalah benteng pertahanan utama dalam mencegah serangan **Cross-Site Scripting (XSS)**. Ketika formulir komentar atau kolom pencarian menerima masukan dari pengguna berbahaya berupa skrip jahat <script>stealCookies()</script>, melakukan encode karakter tersebut menjadi <script>stealCookies()</script> menjamin bahwa browser hanya merender teks komentar tersebut secara aman tanpa pernah mengeksekusi skrip berbahaya tersebut.
&) atau format numeriknya (Decimal/Hexadecimal Entity seperti & atau &).Berikut adalah daftar tabel rujukan entitas HTML yang paling sering digunakan dalam pengembangan web modern:
| Karakter Visual | Deskripsi Karakter | Entitas Bernama (Named) | Entitas Desimal (Numeric) |
|---|---|---|---|
| < | Less Than (Kurang Dari) | < | < |
| > | Greater Than (Lebih Dari) | > | > |
| & | Ampersand | & | & |
| " | Double Quotation Mark | " | " |
| ' | Single Apostrophe | ' | ' |
| © | Copyright Symbol | © | © |
| ® | Registered Trademark | ® | ® |
| € | Euro Currency | € | € |
| Spasi Non-Breaking | Non-Breaking Space | |   |
Entitas bernama (seperti <) jauh lebih mudah diingat dan dibaca oleh pengembang perangkat lunak, namun tidak semua karakter Unicode memiliki singkatan nama resmi. Sebaliknya, entitas numerik (seperti < desimal atau < heksadesimal) mendukung seluruh karakter Unicode (termasuk emoji dan abjad Tionghoa/Arab) sehingga dijamin kompatibel dengan peramban di seluruh dunia.
htmlspecialchars() pada PHP atau pembuatan elemen textContent pada JavaScript untuk mengonversi masukan data sebelum ditampilkan ke halaman web.Berikut adalah implementasi praktis konversi karakter HTML pada backend PHP dan frontend JavaScript:
Mengonversi karakter khusus HTML menggunakan fungsi htmlspecialchars():
<?php
$userInput = "<script>alert('XSS')</script>";
// Output Escaping Aman:
$safeHtml = htmlspecialchars($userInput, ENT_QUOTES | ENT_HTML5, 'UTF-8');
echo $safeHtml;
// Result: <script>alert('XSS')</script>
?>
Menggunakan properti textContent atau fungsi encoder bawaan DOM:
// HTML Entity Encoder Helper JS
function escapeHtml(str) {
const div = document.createElement('div');
div.textContent = str;
return div.innerHTML;
}
const input = "<h1>InfoKoding</h1>";
console.log(escapeHtml(input));
// Output: <h1>InfoKoding</h1>
Fungsi utamanya adalah mengonversi karakter khusus HTML (seperti <, >, dan &) menjadi bentuk entitas teks yang aman (seperti < dan >) agar dapat ditampilkan di layar peramban tanpa dieksekusi sebagai tag elemen baru, sekaligus memulihkan entitas tersebut ke bentuk semula.
Fungsi htmlspecialchars() hanya mengonversi 5 karakter terikat utama HTML (<, >, &, ", '), sedangkan htmlentities() mengonversi seluruh karakter khusus yang memiliki entitas HTML bernama (termasuk huruf beraksen dan simbol mata uang).
Jika tidak di-encode, peramban web akan menganggap simbol < dan > sebagai tag HTML yang harus dieksekusi (sehingga contoh kode Anda akan menghilang atau merusak tata letak visual halaman web).
Sangat aman. Seluruh proses konversi HTML entity encoder dan decoder dijalankan 100% langsung di browser Anda menggunakan JavaScript murni (Client-Side). Data Anda tidak pernah dikirimkan ke server kami.