Kembali ke Kumpulan Developer Tools Online InfoKoding

HTML Entity Encoder & Decoder Online Gratis

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.

Panduan Penggunaan HTML Entity Encoder & Decoder

Key Takeaways: Gunakan mode Encode HTML untuk mengonversi tag dan karakter khusus seperti <, >, dan & menjadi entitas bernama (seperti &lt; dan &gt;) 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:

  1. Tempel string kode HTML mentah atau teks berkode entitas pada kolom Input di sebelah kiri.
  2. Pilih mode Encode HTML untuk mengubah karakter terikat HTML menjadi entitas teks terlindung.
  3. Pilih mode Decode HTML jika Anda ingin memecahkan string entitas (seperti &amp; atau &quot;) kembali menjadi simbol biasa.
  4. Klik tombol Copy di sudut kanan atas kolom Output untuk menyalin hasil keluaran secara instan.

Apa itu HTML Entity & Mengapa Penting untuk Keamanan Web?

Key Takeaways: Entitas HTML (HTML Entity) adalah potongan string yang diawali tanda ampersand (&) 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**.

Definisi & Fungsi Utama Entitas HTML

Entitas HTML adalah urutan teks yang mewakili karakter khusus. Ketika peramban menemukan entitas seperti &lt;, 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 &copy; atau mata uang euro &euro;).

Pencegahan Kerentanan Cross-Site Scripting (XSS)

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 &lt;script&gt;stealCookies()&lt;/script&gt; menjamin bahwa browser hanya merender teks komentar tersebut secara aman tanpa pernah mengeksekusi skrip berbahaya tersebut.

Tabel Rujukan Entitas HTML Umum (Named vs Numeric Entities)

Key Takeaways: Entitas HTML dapat ditulis dalam format bernamanya (Named Entity seperti &amp;) atau format numeriknya (Decimal/Hexadecimal Entity seperti &#38; atau &#x26;).

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) &lt; &#60;
> Greater Than (Lebih Dari) &gt; &#62;
& Ampersand &amp; &#38;
" Double Quotation Mark &quot; &#34;
' Single Apostrophe &apos; &#39;
© Copyright Symbol &copy; &#169;
® Registered Trademark &reg; &#174;
Euro Currency &euro; &#8364;
Spasi Non-Breaking Non-Breaking Space &nbsp; &#160;

Perbedaan Entitas Bernama (Named) vs Entitas Numerik (Numeric/Hex)

Entitas bernama (seperti &lt;) jauh lebih mudah diingat dan dibaca oleh pengembang perangkat lunak, namun tidak semua karakter Unicode memiliki singkatan nama resmi. Sebaliknya, entitas numerik (seperti &#60; desimal atau &#x3C; heksadesimal) mendukung seluruh karakter Unicode (termasuk emoji dan abjad Tionghoa/Arab) sehingga dijamin kompatibel dengan peramban di seluruh dunia.

Contoh Kasus Penggunaan Konversi Karakter HTML dalam Pemrograman

Key Takeaways: Selalu gunakan fungsi bawaan bahasa pemrograman seperti 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:

1. Sanitasi Input pada Backend PHP

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: &lt;script&gt;alert(&#039;XSS&#039;)&lt;/script&gt;
?>

2. Escape HTML pada Client-Side JavaScript

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: &lt;h1&gt;InfoKoding&lt;/h1&gt;

FAQ: Pertanyaan Umum Seputar HTML Entity Encoder & Decoder

Apa fungsi utama dari HTML entity encoder dan decoder?

Fungsi utamanya adalah mengonversi karakter khusus HTML (seperti <, >, dan &) menjadi bentuk entitas teks yang aman (seperti &lt; dan &gt;) agar dapat ditampilkan di layar peramban tanpa dieksekusi sebagai tag elemen baru, sekaligus memulihkan entitas tersebut ke bentuk semula.

Apa perbedaan antara htmlspecialchars() dan htmlentities() pada PHP?

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).

Mengapa karakter < dan > harus di-encode saat menampilkan contoh kode di website?

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).

Apakah proses konversi karakter HTML di InfoKoding aman?

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.

Rusmawan Abdullah Sani
Ditinjau oleh Tim Pengembang InfoKoding Rusmawan Abdullah Sani
Terverifikasi Client-Side Safe