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.
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
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 | |-----------|-------|---------|-----| | < | < | < | < | | > | > | > | > | | & | & | & | & | | " | " | " | " | | ' | ' | ' | ' | | (spasi) | |   |   | | © | © | © | © | | ® | ® | ® | ® | | ™ | ™ | ™ | ™ | | € | € | € | € | | £ | £ | £ | £ | | — | — | — | — | | – | – | – | – | | … | … | … | … | | é | é | é | é |
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:
// < → < > → > & → & " → " ' → '
// Node.js — escape untrusted input before inserting it into HTML element content.
function escapeHtml(str) {
return str
.replace(/&/g, '&') // & first, so later entities are not double-escaped
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, '''); // numeric form — safe in HTML4, HTML5 and XML
}
const userInput = `<a href="x">Tom & Jerry's</a>`;
const safe = escapeHtml(userInput);
// → <a href="x">Tom & Jerry's</a>
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>
<a href="x">Tom & Jerry's</a>
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'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
<>&"'
<>&"'
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
<>&"'
<>&"'
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é (named) · café (decimal) · café (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
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
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
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
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
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 < dan dirender sebagai teks literal. Selalu escape & lebih dulu.
replace < and > first, then & → < becomes &lt;
escape & first, then the rest → < stays <
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.
It's here → may render as It's here
It'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 & dan pengguna melihat & alih-alih &. Escape tepat sekali, saat output.
& encoded again → &amp; shows as &
& 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.
href="/search?q=a&b c" → the space still breaks the URL
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.
café on a UTF-8 page → needless, harder to read
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.
title="He said "hi"" → attribute breaks out
title="He said "hi"" → 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?
Apa arti escape HTML, dan mengapa saya harus melakukannya?
Apa perbedaan antara entitas named, desimal, dan hex?
Mengapa apostrof di-encode sebagai ' dan bukan '?
Apakah saya perlu meng-encode karakter non-ASCII seperti é, — atau 😀?
Apakah escape HTML melindungi saya dari serangan XSS?
Bagaimana saya membalik ini — mengubah entitas kembali menjadi karakter?
Apakah encoding akan mengubah teks yang terlihat atau merusak tata letak saya?
Alat Terkait
Lihat semua alat →Decode & Encode Base64 Online — Konversi Instan di Browser
Encoding & Pemformatan
Decode dan encode Base64 online gratis. Konversi real-time dengan dukungan UTF-8 dan emoji. 100% privat di browser Anda. Tanpa pendaftaran.
Konverter Base64 ke Gambar
Encoding & Pemformatan
Decode string Base64 atau data URI kembali menjadi gambar di browser. Pratinjau, baca dimensi & MIME, lalu unduh sebagai PNG, JPG, GIF, SVG. Tanpa upload.
Konverter CSV ke JSON
Encoding & Pemformatan
Konversi CSV ke JSON di browser. RFC 4180, infer tipe, baris header, aman big-int. 100% privat, tanpa unggah.
Konverter .env ke JSON
Encoding & Pemformatan
Tempel file .env, dapatkan JSON seketika. Password, kunci API, dan token tak pernah keluar dari browser — parser dotenv 100% privat, tanpa unggah, gratis.
Decoder Entitas HTML Gratis — Unescape HTML
Encoding & Pemformatan
Decode entitas HTML dan unescape HTML online — gratis, tanpa daftar, 100% di browser Anda. Mengubah referensi named, desimal & hex kembali menjadi karakter; tidak pernah diunggah.
Konverter HTML ke Markdown
Encoding & Pemformatan
Konversi HTML menjadi Markdown bersih di browser Anda — tabel GFM, daftar tugas, tautan. Pilih heading ATX/Setext serta tautan inline atau reference. Cocok untuk migrasi konten web atau memberi makan LLM. 100% privat.