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
- Pilih Encode untuk meng-escape teks untuk HTML, atau Decode untuk mengubah entity kembali menjadi karakter.
- Saat encode, pilih apa yang di-escape: hanya karakter khusus (
& < > " ') atau juga setiap karakter non-ASCII. - Pilih bentuknya: named (
é), desimal (é), atau hex (é). - 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: <, &, ", dan '. 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 ', bukan ': ' valid di HTML5 dan XML tetapi tidak pernah menjadi bagian HTML 4, dan sebagian parser lama tidak mengenalnya.
- Named (é)
- 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 (é)
- Code point Unicode dalam basis 10. Berfungsi untuk setiap karakter, di setiap parser HTML dan XML.
- Heksadesimal (é)
- 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 (©), dan heksadesimal (©), mengikuti aturan yang dipakai browser: referensi numerik di rentang 128–159 dibaca sebagai Windows-1252, seperti yang ditetapkan standar HTML, sehingga – menjadi en dash; code point yang tidak valid menjadi karakter pengganti; dan beberapa nama lama yang diterima browser tanpa titik koma, seperti ©, 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 &, < sebagai <, > sebagai >, kutip ganda sebagai ", dan kutip tunggal sebagai '. 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 dan spasi biasa?
- adalah spasi tak terputus: tampak seperti spasi tetapi mencegah baris terpotong di titik itu, dan browser tidak menyatukan beberapa menjadi satu. Berguna di antara angka dan satuannya, seperti 10 kg.
- Sebaiknya pakai ' atau ' untuk apostrof?
- ' berfungsi di mana saja. ' valid di HTML5 dan XML tetapi tidak di HTML 4, jadi ' 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.