Pack Camo

HTML Entity Encoder & Decoder

Escape teks untuk HTML dan ubah &entity; kembali menjadi karakter. Semuanya berjalan di perangkat Anda — tidak ada yang diunggah.

Masuk
Text · HTML
Keluar
Escaped HTML · decoded text

Teks

66 karakter

HTML

102 karakter

<p class="note">Fish & chips — £4.50, café crème "très bon" 😀</p>

Escape teks untuk HTML, atau ubah entity kembali menjadi teks

HTML entity encoder ini meng-escape karakter yang jika tidak akan dibaca sebagai markup, dan decoder-nya mengubah entity seperti &, é, dan € kembali menjadi karakter yang diwakilinya. Pilih referensi named, desimal, atau heksadesimal, escape hanya yang perlu atau setiap karakter non-ASCII, dan cari entity umum di tabel referensi. Semuanya berjalan di browser Anda; tidak ada yang Anda tempel diunggah.

Cara encode atau decode HTML entity

  1. Pilih Encode untuk meng-escape teks untuk HTML, atau Decode untuk mengubah entity kembali menjadi karakter.
  2. Saat encode, pilih apa yang di-escape: hanya karakter khusus (& < > " ') atau juga setiap karakter non-ASCII.
  3. Pilih bentuknya: named (&eacute;), desimal (&#233;), atau hex (&#xE9;).
  4. Salin hasilnya, atau tukar kembali ke input untuk memeriksa bolak-baliknya. Aktifkan Tabel referensi untuk menyalin satu entity.

Kenapa HTML perlu di-escape

Di HTML, < mengawali tag dan & mengawali referensi karakter, dan di dalam atribut, karakter kutip mengakhiri nilai. Untuk menampilkan karakter tersebut sebagai teks, karakter itu harus ditulis sebagai entity: &lt;, &amp;, &quot;, dan &#39;. Lupa melakukannya adalah alasan "<b" nyasar di komentar membuat sisa halaman tebal — dan, jika teksnya berasal dari pengguna, alasan cross-site scripting (XSS) terjadi.

Escape adalah garis pertahanan terakhir, bukan satu-satunya. Templating engine seperti React, Vue, Jinja, dan Blade meng-escape output untuk Anda; alat ini untuk tempat yang tidak dijangkau mereka — HTML statis, template email, dokumentasi, kolom CMS, dan men-debug apa yang sebenarnya disimpan sebuah sistem.

Referensi named, desimal, dan heksadesimal

Apostrof ditulis sebagai &#39;, bukan &apos;: &apos; valid di HTML5 dan XML tetapi tidak pernah menjadi bagian HTML 4, dan sebagian parser lama tidak mengenalnya.

Named (&eacute;)
Mudah dibaca, dan bentuk yang paling dikenal orang. HTML5 mendefinisikan sekitar 2.200 nama, tetapi tidak setiap karakter punya nama; karakter tanpa nama ditulis dalam desimal.
Desimal (&#233;)
Code point Unicode dalam basis 10. Berfungsi untuk setiap karakter, di setiap parser HTML dan XML.
Heksadesimal (&#xE9;)
Code point yang sama dalam basis 16, sesuai cara tabel Unicode menuliskannya (U+00E9).

Apakah huruf beraksen dan emoji perlu di-escape?

Tidak, di halaman yang disajikan sebagai UTF-8, yang berlaku untuk hampir semua halaman saat ini. Hanya lima karakter khusus yang wajib di-escape; "café", "日本語", dan emoji bisa ditulis apa adanya. Itulah yang dilakukan opsi hanya karakter khusus, dan HTML tetap mudah dibaca.

Meng-escape setiap karakter non-ASCII tetap berguna jika output melewati sesuatu yang tidak aman untuk UTF-8: sistem lama berbasis ISO-8859-1 atau Windows-1252, sebagian pipeline email, atau berkas sumber yang encoding-nya tidak bisa Anda kendalikan. Hasilnya ASCII murni dan selamat melewati semua itu.

Cara decode bekerja

Decoder membaca referensi named, desimal (&#169;), dan heksadesimal (&#xA9;), mengikuti aturan yang dipakai browser: referensi numerik di rentang 128–159 dibaca sebagai Windows-1252, seperti yang ditetapkan standar HTML, sehingga &#150; menjadi en dash; code point yang tidak valid menjadi karakter pengganti; dan beberapa nama lama yang diterima browser tanpa titik koma, seperti &copy, juga di-decode. Nama yang tidak dikenal, biasanya salah ketik seperti &nbps;, dibiarkan di tempatnya dan dicantumkan agar bisa Anda perbaiki.

Jika teks berasal dari URL, bukan HTML, gunakan URL decoder: %3C adalah percent-encoding, bukan HTML entity.

Pertanyaan yang sering diajukan

Apa itu HTML entity?
HTML entity adalah kode yang mewakili karakter, ditulis di antara & dan ;. Entity memungkinkan Anda menampilkan karakter yang jika tidak akan diperlakukan HTML sebagai markup, seperti < dan &, atau karakter yang sulit diketik, seperti © atau spasi tak terputus.
Karakter apa saja yang wajib di-escape di HTML?
Lima: & sebagai &amp;, < sebagai &lt;, > sebagai &gt;, kutip ganda sebagai &quot;, dan kutip tunggal sebagai &#39;. Kutip hanya penting di dalam nilai atribut, tetapi meng-escape-nya di mana saja tidak merugikan.
Bagaimana cara decode HTML entity?
Pilih Decode dan tempel teksnya. Entity named, desimal, dan heksadesimal diubah menjadi karakter saat Anda mengetik, dan nama entity yang tidak dikenal dicantumkan.
Apa perbedaan &nbsp; dan spasi biasa?
&nbsp; adalah spasi tak terputus: tampak seperti spasi tetapi mencegah baris terpotong di titik itu, dan browser tidak menyatukan beberapa &nbsp; menjadi satu. Berguna di antara angka dan satuannya, seperti 10&nbsp;kg.
Sebaiknya pakai &apos; atau &#39; untuk apostrof?
&#39; berfungsi di mana saja. &apos; valid di HTML5 dan XML tetapi tidak di HTML 4, jadi &#39; pilihan yang lebih aman untuk email dan sistem lama.
Apakah escape HTML mencegah XSS?
Meng-escape teks sebelum disisipkan ke HTML adalah pertahanan utama terhadap cross-site scripting, tetapi harus sesuai konteks: teks HTML, atribut, URL, dan JavaScript masing-masing butuh encoding sendiri. Utamakan sistem templating yang meng-escape secara otomatis.
Apakah teks saya dikirim ke server?
Tidak. Encode dan decode terjadi sepenuhnya di browser Anda.