Skip to content

Encoder Entitas HTML Gratis — Escape HTML

Encode entitas HTML dan escape karakter khusus (< > & " ') online — gratis, tanpa daftar, 100% di browser Anda. Output named, desimal, atau hex; tidak pernah diunggah.

Tanpa Pelacakan Berjalan di Browser Gratis

Teks Anda di-encode secara lokal di browser Anda dan tidak pernah diunggah, dicatat, atau disimpan. Ia tetap di perangkat ini.

Opsi · Opsi format dan encoding
Format entitas
0 karakter
HTML Ter-encode
0 karakter
Ditinjau untuk kebenaran spesifikasi entity-encoding (named / desimal / hex), escape aman-XSS atas kelima karakter khusus dalam konteks HTML dan atribut, konvensi apostrof ' yang aman-kompatibel, privasi tanpa-jaringan/tanpa-penyimpanan atas input, dan aksesibilitas (kontrol berlabel, pengumuman live-region saat encode dan salin). — Tim Encoding Go Tools · Jun 17, 2026

Apa Itu Encoding Entitas HTML?

Encoding entitas HTML — disebut juga escape HTML — adalah proses mengganti karakter yang punya makna khusus dalam HTML dengan representasi tekstual aman yang disebut entitas, sehingga browser menampilkannya sebagai teks literal alih-alih menafsirkannya sebagai markup. Lima karakter yang paling penting adalah yang dipakai HTML untuk menstrukturkan dokumen: kurung sudut < dan > yang membuka dan menutup tag, ampersand & yang memulai sebuah entitas, dan tanda kutip " dan ' yang membatasi nilai atribut. Ketika salah satunya muncul dalam konten yang seharusnya ditampilkan alih-alih dieksekusi, ia harus di-escape, atau browser akan salah membaca halaman — paling baik teks Anda dirender salah, paling buruk penyerang menyelipkan tag <script>.

Ada baiknya tepat tentang apa yang dilakukan alat ini. Ia meng-encode teks menjadi entitas; ia tidak merakit atau merapikan dokumen. Jika Anda ingin membaca string kode di sebuah halaman sebagai teks biasa, atau Anda menyisipkan input pengguna ke dalam HTML Anda dan perlu menetralkannya, ini alat yang tepat. Jika sebaliknya Anda ingin meng-indentasi dan merapikan markup yang ada, itu pekerjaan HTML Formatter; dan untuk mengubah entitas kembali menjadi karakter, gunakan HTML Entity Decoder.

Ada tiga cara menulis entitas apa pun, dan ketiganya dapat dipertukarkan. Referensi bernama memakai label ramah manusia (< untuk <, © untuk ©); referensi numerik desimal menulis titik kode Unicode karakter dalam basis 10 (< untuk <); dan referensi heksadesimal menulis titik kode yang sama dalam basis 16 (< untuk <), cocok dengan notasi U+XXXX standar Unicode. Entitas bernama paling mudah dibaca tetapi hanya ada untuk karakter yang punya nama terdefinisi; entitas numerik bisa mewakili titik kode apa pun, itulah mengapa keduanya cadangan yang aman. Tabel di bawah mencantumkan entitas yang akan paling sering Anda butuhkan:

| Karakter | Named | Desimal | Hex | |-----------|-------|---------|-----| | < | &lt; | &#60; | &#x3C; | | > | &gt; | &#62; | &#x3E; | | & | &amp; | &#38; | &#x26; | | " | &quot; | &#34; | &#x22; | | ' | &#x27; | &#39; | &#x27; | | (spasi) | &nbsp; | &#160; | &#xA0; | | © | &copy; | &#169; | &#xA9; | | ® | &reg; | &#174; | &#xAE; | | ™ | &trade; | &#8482; | &#x2122; | | € | &euro; | &#8364; | &#x20AC; | | £ | &pound; | &#163; | &#xA3; | | — | &mdash; | &#8212; | &#x2014; | | – | &ndash; | &#8211; | &#x2013; | | … | &hellip; | &#8230; | &#x2026; | | é | &eacute; | &#233; | &#xE9; |

Perhatikan bahwa apostrof ditulis ' (atau ') alih-alih ': ' bernama baru distandarkan di HTML5 dan XML serta tidak aman di parser HTML4 lama, jadi bentuk numerik — yang dipahami di mana-mana — adalah pilihan kompatibel. Alat ini mengikuti konvensi yang sama dengan pustaka he yang banyak dipakai, itulah mengapa output default untuk ' adalah '.

Perbedaan antara character set dan entitas patut diingat, karena menjelaskan opsi "Encode semua non-ASCII". Charset (seperti UTF-8) menentukan bagaimana karakter disimpan sebagai byte; entitas adalah cara menulis karakter hanya memakai karakter ASCII biasa & # ; serta huruf atau angka. Pada halaman UTF-8 modern, é, —, dan 😀 adalah karakter mentah yang valid dan tidak butuh entitas sama sekali — itulah mengapa mode default membiarkannya. Anda hanya memaksanya menjadi entitas ketika teks harus melewati sistem yang tidak bisa menangani UTF-8 mentah, dalam hal mana setiap titik kode non-ASCII ditulis ulang sebagai referensi numerik atau bernama yang aman-ASCII. Dan karena semua ini berjalan di browser Anda, markup yang Anda escape — bahkan templat privat atau draf yang belum dipublikasikan — tidak pernah melintasi jaringan. Untuk konversi terkait, alat JSON Escape dan Base64 Encode / Decode menangani escape untuk string JavaScript dan transport aman-biner.

// Server-side templates auto-escape, but when you build HTML by hand you must escape yourself.
// The five reserved characters and their safe entities:
//   <  →  &lt;     >  →  &gt;     &  →  &amp;     "  →  &quot;     '  →  &#x27;

// Node.js — escape untrusted input before inserting it into HTML element content.
function escapeHtml(str) {
  return str
    .replace(/&/g, '&amp;')   // & first, so later entities are not double-escaped
    .replace(/</g, '&lt;')
    .replace(/>/g, '&gt;')
    .replace(/"/g, '&quot;')
    .replace(/'/g, '&#x27;'); // numeric form — safe in HTML4, HTML5 and XML
}

const userInput = `<a href="x">Tom & Jerry's</a>`;
const safe = escapeHtml(userInput);
// → &lt;a href=&quot;x&quot;&gt;Tom &amp; Jerry&#x27;s&lt;/a&gt;
document.getElementById('out').innerHTML = `<p>${safe}</p>`; // renders as literal text

// ---------------------------------------------------------------
// In practice, prefer the platform's built-in escaping where it exists:
//   - React / Vue / Angular escape interpolated text by default
//   - Use textContent instead of innerHTML when you only need text:
//       el.textContent = userInput;  // the browser escapes for you
//   - Server frameworks (Jinja, ERB, Blade) auto-escape unless you opt out

Fitur Utama

Meng-escape Lima Karakter Dipesan dengan Benar

< > & " ' diubah menjadi entitas amannya persis seperti pustaka pencegahan XSS yang tangguh — termasuk ' yang aman-kompatibel untuk apostrof alih-alih ' yang tidak aman di HTML4. Ini set persis yang menetralkan input tidak tepercaya dalam konteks elemen dan atribut HTML.

Output Named, Desimal, dan Hex

Dapatkan karakter yang sama sebagai entitas bernama yang mudah dibaca (<, ©), referensi numerik desimal (<), atau referensi heksadesimal (<). Pilih bentuk yang sistem penerima Anda harapkan; ketiganya menjadi karakter identik saat di-parse.

Mode Opsional Encode-Semua-Non-ASCII

Secara default hanya karakter dipesan yang di-escape, menjaga aksen dan emoji sebagai UTF-8 mentah yang mudah dibaca. Centang satu kotak untuk mengubah setiap titik kode di atas 0x7F menjadi entitas yang aman-ASCII untuk charset lawas atau sistem yang merusak UTF-8.

Encoding Langsung dan Seketika

Output diperbarui saat Anda mengetik — tanpa tombol kirim, tanpa latensi bolak-balik. Tempel blok markup besar dan hasil yang di-escape muncul seketika, siap disalin.

Referensi Cepat Entitas Terpasang

Tabel referensi entitas paling umum — lima yang dipesan plus ©, ®, ™, €, —,   dan lainnya — ada langsung di halaman dalam bentuk named, desimal, dan hex, sehingga Anda tidak perlu mencari entitas di tempat lain.

Tukar Satu-Klik ke Decoder

Tukar arah melompat langsung ke HTML Entity Decoder untuk membalik operasi. Encode dan decode adalah kebalikan persis, sehingga Anda bisa round-trip teks tanpa kehilangan.

100% Privat, Hanya Browser

Semua encoding terjadi di perangkat Anda dengan JavaScript — tanpa permintaan jaringan, tanpa pencatatan, tanpa penyimpanan, dapat diverifikasi di DevTools → Network. Markup privat, templat email, dan draf yang belum dipublikasikan tidak pernah meninggalkan tab.

Tersedia dalam 15 Bahasa

Antarmuka penuh — label, instruksi, dan panduan — dilokalkan ke dalam 15 bahasa, sehingga alat dan saran escape-nya jelas tak peduli di mana tim Anda bekerja.

Contoh Terkerjakan

Escape sebuah cuplikan HTML (mode "karakter khusus" default)

<a href="x">Tom & Jerry's</a>
&lt;a href=&quot;x&quot;&gt;Tom &amp; Jerry&#x27;s&lt;/a&gt;

Dalam mode "karakter khusus" default, encoder hanya menulis ulang lima karakter yang punya makna dalam markup HTML: < menjadi <, > menjadi >, & menjadi &, " menjadi ", dan ' menjadi '. Apostrof dikeluarkan sebagai ' numerik alih-alih ' bernama karena ' tidak didefinisikan dalam HTML4 dan parser lama bisa tersedak olehnya, sedangkan bentuk hex dipahami secara universal. Setelah di-encode, browser merender string itu sebagai teks literal — tag <a> ditampilkan, bukan diklik — yang persis cara aman menampilkan markup di dalam sebuah halaman.

Karakter non-ASCII dipertahankan dalam mode default

Visit our café — it's 😀
Visit our café — it&#x27;s 😀

Mode "karakter khusus" hanya menyentuh lima karakter HTML yang dipesan, sehingga huruf beraksen (café), em dash (—), dan emoji (😀) lewat tanpa berubah. Ini menjaga output tetap mudah dibaca dan ringan dari segi byte, yang Anda inginkan untuk halaman UTF-8 yang sudah mendeklarasikan <meta charset="utf-8">. Hanya apostrof dalam "it's" yang di-escape, menjadi '. Jika Anda perlu setiap karakter non-ASCII diubah menjadi entitas untuk charset lawas, centang "Encode semua non-ASCII" — lihat contoh di bawah.

Entitas numerik desimal

<>&"'
&#60;&#62;&#38;&#34;&#39;

Alihkan format ke Desimal dan setiap karakter khusus ditulis sebagai referensi karakter numerik desimal: < menjadi <, > menjadi >, & menjadi &, " menjadi ", dan ' menjadi '. Entitas desimal adalah bentuk numerik yang paling luas kompatibel — setiap parser HTML dan XML yang patuh memahaminya — yang menjadikannya pilihan aman ketika Anda tidak yakin entitas bernama seperti © didukung oleh sistem penerima.

Entitas numerik heksadesimal

<>&"'
&#x3C;&#x3E;&#x26;&#x22;&#x27;

Format Hex menulis setiap karakter sebagai referensi numerik heksadesimal: < menjadi <, > menjadi >, & menjadi &, " menjadi ", dan ' menjadi '. Hex dan desimal dapat dipertukarkan — keduanya mereferensikan titik kode Unicode yang sama — tetapi hex memetakan satu-ke-satu ke notasi U+XXXX yang Anda lihat dalam standar Unicode, sehingga menjadi bentuk yang banyak dipilih pengembang saat mendokumentasikan atau menalar titik kode tertentu.

Encode semua karakter non-ASCII

café
caf&eacute;  (named)  ·  caf&#233;  (decimal)  ·  caf&#xE9;  (hex)

Centang "Encode semua karakter non-ASCII" dan setiap titik kode di atas 0x7F diubah menjadi entitas, bukan hanya lima yang dipesan. Huruf é dalam café menjadi é bernama, é desimal, atau é hex tergantung format yang Anda pilih — ketiganya mereferensikan karakter yang sama, U+00E9. Mode ini untuk halaman yang disajikan dalam charset non-Unicode, atau untuk sistem yang merusak UTF-8 mentah, di mana memaksa semuanya menjadi entitas ASCII aman 7-bit menjamin teks bertahan utuh selama transport.

Cara Memakai HTML Entity Encoder

  1. 1

    Tempel HTML atau teks Anda

    Jatuhkan markup atau teks biasa yang ingin Anda escape ke kotak input. Output ter-encode diperbarui secara langsung saat Anda mengetik — tidak ada tombol kirim dan tidak ada yang dikirim ke mana pun.

  2. 2

    Pilih format entitas

    Named adalah default yang mudah dibaca (<, &, ©). Beralih ke Desimal (<) atau Hex (<) ketika sistem penerima lebih menyukai referensi numerik atau Anda tidak bisa menjamin entitas bernama didukung.

  3. 3

    Opsional, encode semua non-ASCII

    Biarkan ini mati untuk halaman UTF-8 modern agar aksen dan emoji tetap menjadi karakter mentah yang mudah dibaca. Centang hanya saat teks harus bertahan melalui charset satu-byte lawas, yang mengubah setiap karakter di atas 0x7F menjadi entitas yang aman-ASCII.

  4. 4

    Salin hasil ter-encode

    Klik Salin untuk menaruh string yang di-escape ke clipboard Anda, siap ditempel ke templat, halaman dokumentasi, atau field basis data. Bersihkan mereset kedua panel untuk cuplikan berikutnya.

  5. 5

    Butuh kebalikannya? Tukar arah

    Gunakan Tukar arah untuk beralih ke HTML Entity Decoder saat Anda ingin mengubah entitas kembali menjadi karakter yang diwakilinya.

Kesalahan Umum Encoding HTML

Meng-escape ampersand terakhir, menyebabkan escape ganda

Jika Anda mengganti < dan > sebelum &, entitas yang baru saja Anda buat mendapatkan &-nya di-escape ulang, sehingga < berubah menjadi &lt; dan dirender sebagai teks literal. Selalu escape & lebih dulu.

✗ Salah
replace < and > first, then &  →  &lt;  becomes  &amp;lt;
✓ Benar
escape & first, then the rest  →  &lt;  stays  &lt;

Memakai ' untuk apostrof dalam konteks lawas

' tidak terdefinisi di HTML4 dan beberapa klien email menampilkannya secara literal. Gunakan ' atau ' numerik, yang dipahami setiap parser, saat menargetkan lingkungan lama atau campuran.

✗ Salah
It&apos;s here  →  may render as  It&apos;s here
✓ Benar
It&#x27;s here  →  renders as  It's here

Meng-encode data dua kali

Menjalankan teks yang sudah di-escape melalui encoder lagi meng-encode-nya ganda: & menjadi &amp; dan pengguna melihat & alih-alih &. Escape tepat sekali, saat output.

✗ Salah
&amp;  encoded again  →  &amp;amp;  shows as  &amp;
✓ Benar
&amp;  left as-is  →  renders as  &

Memakai escape HTML untuk konteks URL atau JavaScript

Entitas HTML tidak membuat sebuah nilai aman di dalam URL atau skrip inline. Spasi dalam URL butuh %20, dan string dalam JavaScript butuh escape JS/JSON. Cocokkan encoding dengan tempat nilai mendarat.

✗ Salah
href="/search?q=a&amp;b c"  →  the space still breaks the URL
✓ Benar
href="/search?q=a%26b%20c"  →  URL-encoded, valid

Meng-encode non-ASCII tanpa perlu pada halaman UTF-8

Memaksa café menjadi café pada halaman UTF-8 modern membengkakkan sumber dan menyakiti keterbacaan tanpa manfaat. Biarkan non-ASCII mentah kecuali charset lawas benar-benar membutuhkan entitas.

✗ Salah
caf&eacute; on a UTF-8 page  →  needless, harder to read
✓ Benar
café on a UTF-8 page  →  valid and clean

Lupa meng-escape tanda kutip di dalam nilai atribut

Menyisipkan " tanpa escape ke dalam atribut membiarkan nilai keluar dan menyuntikkan atribut baru — sebuah vektor XSS. Selalu escape " (dan idealnya ') dalam konteks atribut, yang dilakukan alat ini secara default.

✗ Salah
title="He said "hi""  →  attribute breaks out
✓ Benar
title="He said &quot;hi&quot;"  →  contained

Siapa yang Memakai Alat Ini

Menampilkan Contoh Kode di Halaman Web
Menulis tutorial atau dokumentasi yang perlu menampilkan HTML literal? Escape cuplikan agar <strong>bold</strong> muncul sebagai teks alih-alih dirender. Tempel markup, salin output yang di-escape, dan jatuhkan ke dalam blok <pre> atau <code>.
Membersihkan Input Pengguna Terhadap XSS
Sebelum menyisipkan string yang dipasok pengguna ke dalam HTML Anda, escape lima karakter dipesan agar payload seperti <script>…</script> menjadi teks inert. Ini pertahanan fundamental terhadap cross-site scripting saat Anda membangun markup secara manual.
Menyimpan Markup di Dalam Field Basis Data atau JSON
Perlu menyimpan fragmen HTML sebagai string biasa tanpa ditafsirkan di hilir? Encode lebih dulu agar kurung sudut dan ampersand bertahan melalui penyimpanan dan tampil ulang utuh, lalu decode saat keluar.
Menyusun Templat Email dan Konten CMS
Klien email dan sistem manajemen konten tak kenal ampun terhadap karakter khusus mentah. Escape set yang dipesan — dan opsional semua non-ASCII — agar templat Anda dirender konsisten di seluruh klien yang mungkin tidak berbagi charset Anda.
Mengonversi Teks untuk Charset Lawas
Menargetkan sistem yang tidak bisa menangani UTF-8 mentah? Aktifkan "Encode semua non-ASCII" untuk menulis ulang setiap huruf beraksen, simbol, dan emoji sebagai entitas yang aman-ASCII, menjamin teks bertahan melalui transport pipa 7-bit bersih.
Meng-escape Nilai Atribut XML dan SVG
XML dan SVG inline berbagi karakter dipesan HTML. Encode tanda kutip dan kurung sudut agar string dengan markup tertanam masuk dengan aman ke nilai atribut tanpa merusak struktur dokumen.
Mencari Entitas dengan Cepat
Lupa apakah tanda merek dagang itu ™ atau ™? Ketik karakternya, baca entitas named, desimal, dan hex-nya dari output, atau lihat tabel referensi cepat terpasang tanpa meninggalkan halaman.

Cara Kerja Encoder

Mode Karakter-Khusus (Default)
Secara default hanya lima karakter yang dipesan HTML yang di-escape — & < > " ' — mengikuti aturan serialisasi HTML WHATWG untuk output aman. & diganti lebih dulu agar entitas yang dihasilkan untuk karakter lain tidak di-escape ganda. Semua karakter lain, termasuk non-ASCII, lewat tanpa berubah.
Apostrof Memakai '
Alih-alih ' bernama — yang tidak terdefinisi di HTML4 dan tidak aman di beberapa parser lawas — kutip tunggal dikeluarkan sebagai ' numerik (desimal '), mereferensikan U+0027. Ini cocok dengan konvensi pustaka yang teruji baik seperti he dan menjamin output aman di HTML4, HTML5, dan XML sekaligus.
Encoding Named, Desimal, dan Hex
Pemilih format mengontrol bagaimana setiap karakter yang di-escape ditulis: Named memakai label terdefinisi bila ada (<, ©), Desimal menulis titik kode Unicode dalam basis 10 (<), dan Hex menulisnya dalam basis 16 (<). Bentuk numerik mereferensikan titik kode yang sama dengan bentuk bernama dan dapat dipertukarkan saat di-parse.
Opsi Encode-Semua-Non-ASCII
Saat diaktifkan, setiap karakter dengan titik kode di atas 0x7F diubah menjadi entitas dalam format yang dipilih — café menjadi café (named), café (desimal), atau café (hex). Karakter astral seperti emoji di-encode dengan titik kode penuhnya (😀 → 😀). Ini menghasilkan output ASCII 7-bit bersih untuk transport lawas.
Charset Versus Entitas
Character set menentukan bagaimana teks disimpan sebagai byte; entitas adalah cara mengeja karakter hanya memakai ASCII. Pada halaman UTF-8 karakter non-ASCII tidak butuh entitas, itulah mengapa default membiarkannya mentah. Meng-encode semuanya hanya perlu ketika output harus melintasi charset non-Unicode atau sistem yang bermusuhan dengan UTF-8.
Lokal di Browser, Nol Jaringan
Encoding berjalan sinkron dalam JavaScript di thread utama; tidak ada panggilan API, tidak ada bolak-balik worker ke server, dan tidak ada persistensi. Input tidak pernah meninggalkan halaman, yang bisa Anda konfirmasi dengan mengamati panel Network kosong saat Anda mengetik.

Praktik Terbaik Escape HTML

Escape saat Output, dalam Konteks yang Tepat
Encode data pada saat Anda menyisipkannya ke dalam HTML, bukan saat menerimanya, dan cocokkan encoding dengan konteks. HTML entity encoding untuk konten elemen dan atribut HTML; gunakan URL encoding di dalam URL dan escape JavaScript/JSON di dalam blok skrip. Escape di konteks yang salah meninggalkan celah.
Selalu Escape Input Tidak Tepercaya
String apa pun yang berasal dari pengguna, unggahan, atau API eksternal harus di-escape sebelum mendarat di markup Anda. Ini pertahanan XSS inti: payload seperti <script>alert(1)</script> menjadi teks inert begitu kurung sudut menjadi entitas.
Utamakan Escape Bawaan bila Ada
React, Vue, dan sebagian besar mesin templating server meng-escape teks interpolasi secara otomatis; menetapkan element.textContent juga meng-escape untuk Anda. Gunakan alat ini untuk konversi sekali pakai dan untuk memahami output — tetapi dalam kode aplikasi, sandarkan pada auto-escape framework alih-alih merakitnya sendiri.
Biarkan Non-ASCII Mentah pada Halaman UTF-8
Jika halaman Anda mendeklarasikan <meta charset="utf-8">, jangan encode aksen dan emoji menjadi entitas — UTF-8 mentah lebih pendek, lebih mudah dibaca, dan sama benarnya. Sediakan "Encode semua non-ASCII" hanya untuk kasus charset-lawas asli yang benar-benar membutuhkannya.
Gunakan Apostrof Numerik dalam Konteks Campuran
Ketika output mungkin dikonsumsi parser lama, prosesor XML, atau klien email, utamakan ' numerik daripada ' bernama untuk kutip tunggal. Bentuk numerik dipahami secara universal; bentuk bernama tidak, dan "'" literal yang nyasar dalam teks yang dirender adalah bug umum yang dapat dihindari.

Pertanyaan yang Sering Diajukan

Apakah teks saya dikirim ke server Anda saat saya meng-encode-nya?
Tidak. Setiap karakter di-encode sepenuhnya di browser Anda dengan JavaScript — buka DevTools → Network dan Anda akan melihat nol permintaan terpicu saat Anda mengetik atau menempel. Tidak ada yang diunggah, tidak ada yang dicatat, tidak ada yang ditulis ke disk. Privasi itu penting karena markup yang orang escape sering kali sensitif: cuplikan dari CMS privat, templat email internal, balasan dukungan pelanggan, atau draf posting blog yang belum Anda publikasikan. Pada encoder sisi server, setiap satunya akan melintasi jaringan ke mesin yang tidak Anda kendalikan; di sini teks tidak pernah meninggalkan tab. Inilah seluruh alasan untuk escape HTML di sisi klien alih-alih menempelkannya ke situs web yang, secara prinsip, bisa menyimpan salinan segala sesuatu yang diprosesnya.
Apa arti escape HTML, dan mengapa saya harus melakukannya?
Escape HTML berarti mengganti karakter yang sebaliknya akan ditafsirkan browser sebagai markup dengan padanan entitasnya, sehingga ditampilkan sebagai teks literal. Kasus klasiknya adalah menampilkan kode di sebuah halaman: jika Anda ingin pengunjung membaca string <strong>bold</strong> alih-alih melihat kata "bold" dirender dengan huruf tebal, Anda escape kurung sudut menjadi <strong>bold</strong>. Kasus lain yang lebih penting adalah keamanan: saat Anda menyisipkan input pengguna yang tidak tepercaya ke dalam halaman, meng-escape lima karakter yang dipesan (< > & " ') mencegah input itu keluar dari konteksnya dan menyuntikkan tag <script> — pertahanan inti terhadap cross-site scripting (XSS). Teks apa pun yang berasal dari pengguna dan mendarat di HTML Anda harus di-escape lebih dulu.
Apa perbedaan antara entitas named, desimal, dan hex?
Ketiganya menghasilkan karakter yang sama; bedanya hanya pada cara referensi ditulis. Entitas bernama memakai label yang mudah dibaca manusia — < untuk <, & untuk &, © untuk © — yang mudah dibaca tetapi hanya bekerja untuk karakter yang punya nama terdefinisi. Entitas numerik desimal menulis titik kode Unicode dalam basis 10, seperti < untuk < atau é untuk é. Entitas heksadesimal menulis titik kode yang sama dalam basis 16, seperti < untuk < atau é untuk é, mencerminkan notasi U+XXXX dalam standar Unicode. Entitas bernama paling mudah dibaca dan merupakan default yang tepat untuk karakter dipesan yang umum; entitas numerik (desimal atau hex) dapat meng-encode titik kode apa pun, termasuk yang tak bernama, yang menjadikannya pilihan aman ketika Anda tidak bisa menjamin penerima mendukung entitas bernama tertentu.
Mengapa apostrof di-encode sebagai ' dan bukan '?
Karena ' tidak aman di mana-mana. Entitas bernama ' baru diperkenalkan di HTML5 dan XML — ia tidak didefinisikan dalam HTML4, sehingga beberapa parser lama dan klien email merendernya sebagai teks literal "'" alih-alih apostrof. Referensi numerik ' (atau kembarannya yang desimal ') memetakan ke karakter yang persis sama, U+0027, dan dipahami oleh setiap parser patuh yang pernah ditulis. Mengikuti perilaku pustaka yang teruji baik seperti he, alat ini mengeluarkan ' yang kompatibel secara universal untuk apostrof sehingga output aman dijatuhkan ke konteks HTML, XML, atau atribut apa pun tanpa kejutan.
Apakah saya perlu meng-encode karakter non-ASCII seperti é, — atau 😀?
Biasanya tidak. Jika halaman Anda mendeklarasikan <meta charset="utf-8"> — yang pada dasarnya dilakukan setiap halaman modern — maka huruf beraksen, em dash, dan emoji sepenuhnya valid sebagai UTF-8 mentah dan tidak perlu encoding sama sekali. Itulah mengapa mode "karakter khusus" default membiarkannya utuh, menjaga output Anda tetap pendek dan mudah dibaca. Anda hanya perlu meng-encode karakter non-ASCII ketika teks akan disajikan atau disimpan dalam charset satu-byte lawas, atau dilewatkan melalui sistem yang merusak UTF-8 mentah. Untuk kasus itu centang "Encode semua karakter non-ASCII" dan setiap titik kode di atas 0x7F diubah menjadi entitas yang aman-ASCII. Saat ragu, pertahankan default dan pastikan deklarasi charset Anda benar.
Apakah escape HTML melindungi saya dari serangan XSS?
Escape adalah fondasi pertahanan XSS, tetapi bergantung pada konteks, jadi jawaban jujurnya adalah "ya, bila diterapkan dengan benar." Meng-encode lima karakter dipesan sebelum Anda menempatkan input tidak tepercaya ke dalam konten elemen HTML secara andal menghentikan penyerang menyuntikkan tag atau skrip — payload seperti <script>alert(1)</script> menjadi teks inert. Peringatannya adalah HTML punya beberapa konteks, masing-masing dengan aturan escape sendiri: di dalam nilai atribut Anda harus escape tanda kutip (yang dilakukan alat ini), di dalam blok <script> atau penangan event inline Anda butuh escape JavaScript, dan di dalam URL Anda butuh URL encoding. Gunakan HTML entity encoding untuk konteks HTML dan atribut; untuk URL gunakan URL Encoder / Decoder, dan untuk menyematkan string dalam JavaScript atau JSON lihat alat JSON Escape. Encode saat output, dalam konteks tempat data mendarat.
Bagaimana saya membalik ini — mengubah entitas kembali menjadi karakter?
Gunakan pendamping HTML Entity Decoder. Ia mengambil string penuh entitas seperti <div> & © dan mengubahnya kembali menjadi karakter sebenarnya <div> & ©, menangani entitas bernama, referensi desimal, referensi heksadesimal, dan bahkan entitas tak terakhiri lawas seperti &copy tanpa titik koma penutup. Encoding dan decoding adalah kebalikan persis untuk karakter dipesan, sehingga Anda bisa round-trip teks melalui kedua alat tanpa kehilangan. Jika Anda men-debug mengapa sebuah halaman menampilkan &lt; literal alih-alih <, decoder adalah cara tercepat melihat ke apa entitas itu sebenarnya menjadi.
Apakah encoding akan mengubah teks yang terlihat atau merusak tata letak saya?
Tidak — itu justru intinya. Entitas hanyalah ejaan alternatif sebuah karakter: ketika browser mem-parse < ia merender satu glif <, identik dengan karakter mentah. Jadi halaman yang di-escape dengan benar tampak persis sama bagi pengunjung seperti dengan karakter mentah; satu-satunya perbedaan adalah browser memperlakukan versi yang di-escape sebagai teks alih-alih markup. Satu hal yang diubah escape adalah panjang dan tampilan string sumber, itulah mengapa Anda escape hanya yang perlu di-escape. Jika tujuan Anda membersihkan dan merapikan markup yang berantakan alih-alih meng-escape-nya, itu pekerjaan berbeda — gunakan HTML Formatter sebagai gantinya.