Skip to content

Decoder Entitas HTML Gratis — Unescape HTML

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.

Tanpa Pelacakan Berjalan di Browser Gratis

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

0 karakter
HTML / Teks Ter-decode
0 karakter
Ditinjau untuk kebenaran spesifikasi entity-decoding (resolusi named / desimal / hex), rekonstruksi astral-plane dan emoji, parsing entitas lawas yang longgar, risiko XSS atas merender teks ter-decode tidak tepercaya (dan panduan escape-ulang yang memitigasinya), privasi tanpa-jaringan/tanpa-penyimpanan atas input, dan aksesibilitas (kontrol berlabel, pengumuman live-region saat decode dan salin). — Tim Encoding Go Tools · Jun 17, 2026

Apa Itu Decoding Entitas HTML?

Decoding entitas HTML — disebut juga unescape HTML — adalah proses mengubah referensi karakter kembali menjadi karakter yang diwakilinya. Di mana encoding mengganti < literal dengan entitas < agar browser menampilkannya sebagai teks, decoding melakukan kebalikannya: ia memindai string untuk referensi seperti <, &, <, >, atau © dan menggantikan karakter sebenarnya (<, &, <, >, ©) untuk masing-masing. Ini operasi yang Anda jalankan saat Anda punya markup yang disimpan atau dikirim dalam bentuk ter-escape dan Anda butuh teks sebenarnya kembali — untuk membacanya, mengeditnya, menyerahkannya ke program lain, atau mencari tahu mengapa sebuah halaman merender &lt; alih-alih <.

Ada baiknya tepat tentang apa yang dilakukan alat ini. Ia men-decode entitas menjadi karakter; ia tidak memformat ulang atau memvalidasi markup. Jika Anda ingin mengambil string ter-escape dan memulihkan karakter literalnya, ini alat yang tepat. Untuk ke arah sebaliknya dan mengubah karakter menjadi entitas, gunakan HTML Entity Encoder; dan untuk meng-indentasi dan merapikan blok HTML, gunakan HTML Formatter. Encoding dan decoding adalah kebalikan persis, sehingga string yang dikirim melalui encoder dan kembali melalui decoder kembali tanpa berubah.

Ada tiga jenis referensi yang harus dipahami decoder, dan ia menangani semuanya. Referensi bernama memakai label terdefinisi (< untuk <, © untuk ©, — untuk —); referensi numerik desimal menulis titik kode Unicode dalam basis 10 (< untuk <); dan referensi numerik heksadesimal menulis titik kode yang sama dalam basis 16 (< untuk <), cocok dengan notasi U+XXXX standar Unicode. Decoder yang tangguh menerima salah satunya, dalam campuran apa pun, karena encoder berbeda mengeluarkan bentuk berbeda. Tabel di bawah menunjukkan referensi yang paling sering Anda temui dan karakter yang masing-masing menjadi:

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

Dua perilaku membedakan decoder yang menyeluruh. Pertama, ia merekonstruksi karakter astral-plane — apa pun di atas U+FFFF, termasuk sebagian besar emoji — dari referensi numeriknya alih-alih menghasilkan karakter-separuh yang rusak; 😀 dengan benar menjadi 😀. Kedua, ia mengikuti parsing longgar browser untuk kumpulan kecil entitas bernama lawas yang secara historis muncul tanpa titik koma penutup, sehingga &copy 2026 tetap ter-decode menjadi © 2026 meski XML ketat akan menolaknya. Alat ini melakukan keduanya, cocok dengan perilaku pustaka he yang banyak dipakai sehingga outputnya sesuai dengan apa yang akan dirender browser sungguhan.

Satu peringatan yang menyertai setiap decoder: teks ter-decode menurut definisi tidak ter-escape. Decoding adalah kebalikan dari escape yang melindungi halaman dari cross-site scripting, sehingga string ter-decode yang mengandung tag <script> atau penangan event sekali lagi adalah markup hidup yang berbahaya. Jangan pernah men-decode input tidak tepercaya lalu menyisipkannya ke halaman dengan innerHTML — itu membuka kembali persis celah yang dimaksudkan ditutup oleh encoding. Decode saat Anda butuh karakter mentah untuk membaca, mengedit, atau menyimpan; jika hasilnya akan dirender kembali ke HTML, escape ulang dalam konteks tujuannya lebih dulu. Dan karena setiap byte diproses di browser Anda, string ter-escape yang Anda decode — bahkan catatan privat atau draf yang belum dipublikasikan — tidak pernah melintasi jaringan. Untuk konversi tetangga, URL Encoder / Decoder menangani percent-encoding dan Base64 Encode / Decode menangani transport aman-biner.

// Decoding is the inverse of escaping. The classic round-trip:
//   &lt;  →  <     &gt;  →  >     &amp;  →  &     &quot;  →  "     &#x27;  →  '

// Browser — the safest decoder is the platform itself. Use textarea, NOT innerHTML on a live node,
// so the decoded markup is never executed.
function decodeHtml(str) {
  const ta = document.createElement('textarea');
  ta.innerHTML = str;        // the parser resolves entities into text
  return ta.value;           // .value is plain text — no script runs
}

decodeHtml('&lt;div&gt; &amp; &copy;');   // → '<div> & ©'
decodeHtml('&#60;&#x3E;');                // → '<>'
decodeHtml('&#x1F600;');                 // → '😀'
decodeHtml('&copy 2026');                // → '© 2026'  (lenient, no semicolon)

// ---------------------------------------------------------------
// SECURITY: decoded text is unescaped. Never do this with untrusted input:
//   el.innerHTML = decodeHtml(userInput);   // ❌ reopens the XSS hole
// If the decoded value must be displayed, re-escape it in its destination context first,
// or assign it as text:
//   el.textContent = decodeHtml(userInput); // ✅ shown as literal text

// ---------------------------------------------------------------
// Node.js (no DOM) — use a tested library such as he:
//   import { decode } from 'he';
//   decode('&lt;div&gt; &amp; &copy;');     // → '<div> & ©'

Fitur Utama

Men-decode Referensi Named, Desimal, dan Hex

Menyelesaikan set entitas bernama HTML5 lengkap (<, ©, —), referensi numerik desimal (<), dan referensi heksadesimal (<) dalam kombinasi apa pun, persis seperti yang akan dilakukan browser — sehingga ia membalik apa pun yang dihasilkan encoder.

Menangani Emoji dan Karakter Astral-Plane

Referensi numerik di atas U+FFFF direkonstruksi menjadi titik kode penuhnya, sehingga 😀 ter-decode menjadi 😀 alih-alih surrogate rusak. Ideograf CJK langka dan simbol matematika juga ter-decode dengan setia.

Parsing Entitas Lawas yang Longgar

Mengikuti aturan kompatibel-mundur browser untuk entitas bernama yang kehilangan titik koma penutup, sehingga markup lawas atau ceroboh seperti &copy 2026 tetap ter-decode menjadi © 2026 yang akan dibiarkan rusak oleh parser ketat.

Decoding Langsung dan Seketika

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

Referensi Cepat Entitas Terpasang

Tabel referensi yang memetakan entitas paling umum — lima yang dipesan plus ©, ®, ™, €, —,   dan lainnya — ke karakternya ada langsung di halaman, sehingga Anda tidak perlu mencari entitas di tempat lain.

Tukar Satu-Klik ke Encoder

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

100% Privat, Hanya Browser

Semua decoding terjadi di perangkat Anda dengan JavaScript — tanpa permintaan jaringan, tanpa pencatatan, tanpa penyimpanan, dapat diverifikasi di DevTools → Network. Fragmen basis data privat, konten 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 keamanannya jelas tak peduli di mana tim Anda bekerja.

Contoh Terkerjakan

Decode campuran entitas bernama

&lt;div&gt; &amp; &copy;
<div> & ©

Decoder menyelesaikan setiap referensi bernama menjadi karakter yang diwakilinya: < menjadi <, > menjadi >, & menjadi &, dan © menjadi tanda hak cipta ©. Ini kasus sehari-hari — mengambil string yang disimpan atau dikirim dalam bentuk ter-escape dan mengubahnya kembali menjadi karakter sebenarnya sehingga Anda bisa membaca, mengedit, atau memproses ulang markup. Decoding adalah kebalikan persis dari encoding, sehingga string yang di-round-trip melalui encoder dan kembali tiba tanpa berubah.

Decode referensi numerik desimal dan heksadesimal

&#60;&#x3E;
<>

Referensi karakter numerik bekerja di kedua basis: < adalah bentuk desimal titik kode 60, yaitu <, dan > adalah bentuk heksadesimal titik kode 62, yaitu >. Decoder menangani referensi desimal (&#NNN;) dan hex (&#xHHH;) secara dapat dipertukarkan, menyelesaikan masing-masing menjadi karakter Unicode-nya. Ini penting karena encoder berbeda pendapat tentang bentuk mana yang dikeluarkan — sebagian lebih suka desimal, sebagian hex — dan decoder yang tangguh harus menerima keduanya.

Decode entitas lawas yang kehilangan titik komanya

&copy 2026
© 2026

HTML lama mengizinkan sekumpulan kecil entitas bernama muncul tanpa titik koma penutup, dan browser masih menyelesaikannya demi kompatibilitas mundur — &copy 2026 dirender sebagai © 2026. Decoder ini mengikuti aturan parsing longgar yang sama, sehingga ia memulihkan karakter yang dimaksud dari markup yang ceroboh atau lawas yang akan dibiarkan parser ketat. Jika Anda men-debug teks yang menampilkan &copy yang nyasar, inilah sebabnya.

Decode sebuah emoji dari referensi hex-nya

&#x1F600;
😀

Referensi numerik tidak terbatas pada Basic Multilingual Plane — 😀 adalah referensi heksadesimal untuk titik kode U+1F600, emoji wajah menyeringai 😀. Decoder dengan benar merekonstruksi karakter astral-plane (apa pun di atas U+FFFF) dari referensi numeriknya, sehingga emoji, ideograf CJK langka, dan simbol matematika semuanya ter-decode dengan setia alih-alih berubah menjadi surrogate rusak atau glif pengganti.

Decode string atribut yang di-escape

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

Ini round-trip penuh dari contoh unggulan encoder. " menjadi tanda kutip ganda, ' (apostrof numerik yang aman-kompatibel) menjadi ', dan entitas kurung sudut serta ampersand menjadi karakter literalnya, merekonstruksi Tom & Jerry's aslinya secara persis. Karena decoder menerima referensi named, desimal, dan hex dalam kombinasi apa pun, ia membalik apa pun yang dihasilkan encoder, tak peduli gaya entitas mana yang dipakai.

Cara Memakai HTML Entity Decoder

  1. 1

    Tempel string ter-escape

    Jatuhkan teks penuh entitas HTML ke kotak input. Karakter ter-decode diperbarui secara langsung saat Anda mengetik — tidak ada tombol kirim dan tidak ada yang dikirim ke mana pun.

  2. 2

    Baca hasil ter-decode

    Referensi named, desimal, dan heksadesimal semuanya diselesaikan secara otomatis menjadi karakter yang diwakilinya, termasuk emoji dan titik kode astral-plane lain. Tidak perlu pemilihan format — decoder mendeteksi jenis setiap referensi.

  3. 3

    Salin teks ter-decode

    Klik Salin untuk menaruh karakter yang dipulihkan ke clipboard Anda, siap ditempel ke editor, basis data, atau alat lain. Bersihkan mereset kedua panel untuk string berikutnya.

  4. 4

    Escape ulang sebelum menampilkan ulang teks tidak tepercaya

    Jika output ter-decode akan dirender kembali ke halaman web dan sebagian berasal dari sumber tidak tepercaya, escape lagi lebih dulu dengan encoder untuk menghindari membuka kembali celah XSS.

  5. 5

    Butuh encode sebagai gantinya? Tukar arah

    Gunakan Tukar arah untuk beralih ke HTML Entity Encoder saat Anda ingin mengubah karakter mentah menjadi entitas.

Kesalahan Umum Decoding HTML

Merender input tidak tepercaya ter-decode dengan innerHTML

Decoding meng-unescape teks, sehingga tag <script> ter-decode adalah markup hidup lagi. Menyisipkannya via innerHTML mengeksekusinya — celah XSS klasik. Escape ulang teks tidak tepercaya ter-decode, atau gunakan textContent.

✗ Salah
el.innerHTML = decode(userInput)  →  script runs (XSS)
✓ Benar
el.textContent = decode(userInput)  →  shown as text

Men-decode hanya sekali ketika teks ter-encode ganda

Teks ter-encode ganda butuh dua pass decode. Men-decode &lt; sekali menghasilkan <, bukan <. Decode lagi — dan perbaiki pipeline agar tidak pernah encode ganda sejak awal.

✗ Salah
&amp;lt;  decoded once  →  &lt;  (still an entity)
✓ Benar
&amp;lt;  decoded twice  →  <

Mengacaukan HTML decoding dengan URL atau Base64 decoding

Entitas, percent-encoding, dan base64 adalah skema berbeda. Decoder HTML tidak akan mengubah %20 menjadi spasi atau men-decode blob base64. Gunakan alat yang cocok untuk setiap lapisan encoding.

✗ Salah
HTML-decode "%3Cdiv%3E"  →  unchanged, still percent-encoded
✓ Benar
URL-decode "%3Cdiv%3E"  →  <div>

Memakai regex yang melewatkan referensi numerik atau astral

Regex tulisan-tangan untuk entitas bernama diam-diam melewatkan <, >, dan emoji seperti 😀, membiarkannya di output. Gunakan parser browser atau pustaka teruji yang mencakup semua bentuk referensi.

✗ Salah
regex for &name; only  →  &#x1F600; left undecoded
✓ Benar
full decoder  →  &#x1F600; becomes 😀

Output tampil sebagai mojibake setelah decoding

Men-decode é memberi é yang sebenarnya, tetapi jika halaman atau file penerima tidak disajikan sebagai UTF-8 karakternya rusak menjadi sampah. Atur charset ke UTF-8 sebelum menulis teks ter-decode keluar.

✗ Salah
decoded é into a Latin-1 file  →  é mojibake
✓ Benar
decoded é into a UTF-8 file  →  é

Mengasumsikan parsing ketat dan melewatkan entitas lawas

Parser XML ketat mengabaikan entitas tanpa titik koma seperti &copy, membiarkannya literal. Browser menyelesaikannya, jadi decoder yang setia harus juga — kalau tidak output Anda berbeda dari apa yang pengguna lihat.

✗ Salah
strict parse of "&copy 2026"  →  &copy 2026 literal
✓ Benar
lenient parse of "&copy 2026"  →  © 2026

Siapa yang Memakai Alat Ini

Membaca Markup yang Disimpan dalam Bentuk Ter-escape
Menarik fragmen HTML dari basis data, log, atau field JSON tempat ia disimpan sebagai <div>…? Decode untuk melihat dan mengedit markup sebenarnya alih-alih menyipitkan mata ke tembok entitas.
Men-debug Teks Ter-encode Ganda
Melihat &lt; pada halaman langsung di mana seharusnya <? Tempel di sini untuk memastikan ia ter-encode ganda, decode dua kali untuk memulihkan aslinya, dan telusuri escape duplikat kembali ke sumbernya dalam pipeline Anda.
Mengekstrak Teks Biasa dari Cuplikan HTML
Butuh teks yang dapat dibaca manusia dari badan email atau field CMS yang ter-escape? Decode entitas untuk memulihkan karakter sebenarnya sebelum Anda mengindeks, mencari, atau menampilkan konten di tempat lain.
Memulihkan Karakter dari Data Hasil Scrape atau Ekspor
Ekspor dan scraper sering mengirim konten dengan entitas utuh. Decode &, é, dan kawan-kawan kembali menjadi karakternya agar data bersih sebelum masuk ke sistem Anda sendiri.
Memverifikasi Output Encoder Ber-round-trip
Setelah meng-escape string dengan encoder, decode di sini untuk memastikan Anda mendapatkan aslinya kembali tanpa berubah. Round-trip yang bersih membuktikan escape Anda benar dan dapat dibalik.
Menyelesaikan Entitas Misteri
Bingung apa sebenarnya ™ atau …? Tempel dan baca karakter ter-decode-nya, atau lihat tabel referensi cepat terpasang — tak perlu menghafal tabel entitas.
Men-decode Markup Lawas dengan Aman
Bekerja dengan HTML lama yang memakai entitas tanpa titik koma seperti &copy atau &nbsp secara tidak konsisten? Decoder longgar memulihkan karakter yang dimaksud seperti yang akan dilakukan browser sungguhan, sehingga pembersihan Anda cocok dengan apa yang pengguna sebenarnya lihat.

Cara Kerja Decoder

Menyelesaikan Ketiga Bentuk Referensi
Decoder mencocokkan referensi bernama terhadap tabel karakter-bernama HTML5 lengkap, mem-parse referensi desimal (&#NNN;) sebagai titik kode basis-10, dan mem-parse referensi heksadesimal (&#xHHH;) sebagai titik kode basis-16. Masing-masing menjadi karakter Unicode-nya; ketiga bentuk dapat dipertukarkan pada input.
Rekonstruksi Astral-Plane
Referensi numerik yang titik kodenya melebihi U+FFFF — sebagian besar emoji dan banyak simbol — diubah menjadi pasangan surrogate yang benar agar karakter dirender sebagai satu glif. 😀 menjadi 😀, bukan dua karakter-separuh yang rusak.
Penanganan Entitas Lawas yang Longgar
Subkumpulan entitas bernama terdefinisi secara historis muncul tanpa titik koma penutup, dan browser masih menyelesaikannya. Decoder mencerminkan perilaku ini — &copy 2026 menghasilkan © 2026 — cocok dengan rendering browser sungguhan alih-alih parser XML ketat.
Idempoten pada Teks Biasa
Karakter yang bukan bagian dari referensi yang dikenali, termasuk teks non-ASCII mentah yang sudah ada di input, lewat tanpa tersentuh. Men-decode string tanpa entitas mengembalikannya tanpa berubah, sehingga operasi aman dijalankan pada konten campuran.
Output Ter-decode Tidak Ter-escape
Decoding adalah kebalikan dari escape pelindung-XSS, sehingga hasilnya adalah markup hidup lagi. Alat menonjolkan ini agar Anda tidak menyisipkan teks ter-decode tidak tepercaya ke halaman dengan innerHTML — escape ulang dalam konteks tujuannya sebelum merender.
Lokal di Browser, Nol Jaringan
Decoding berjalan sinkron dalam JavaScript di thread utama; tidak ada panggilan API, tidak ada bolak-balik server, dan tidak ada persistensi. Input tidak pernah meninggalkan halaman, yang bisa Anda konfirmasi dengan mengamati panel Network kosong saat Anda mengetik.

Praktik Terbaik Unescape HTML

Jangan Pernah Render Teks Ter-decode Tidak Tepercaya Langsung
Output ter-decode adalah markup tidak ter-escape. Jika sebagian berasal dari pengguna atau sumber eksternal, escape ulang sebelum menyisipkannya ke halaman, atau tetapkan melalui textContent alih-alih innerHTML. Melewatkan ini membuka kembali celah cross-site-scripting yang dimaksudkan ditutup oleh escape.
Decode dalam Urutan Terbalik dari Encoding
Sebuah nilai mungkin di-encode HTML, lalu di-encode URL, lalu di-encode Base64. Bongkar lapisannya dalam urutan terbalik dari penerapannya — dan gunakan alat yang cocok untuk masing-masing: ini untuk entitas, URL decoder untuk percent-encoding, alat Base64 untuk base64.
Decode Sekali, Bukan Secara Refleks
Jika satu decode meninggalkan entitas terlihat seperti <, input ter-encode ganda — decode lagi untuk memulihkan aslinya, lalu perbaiki pipeline hulu agar teks di-escape tepat sekali. Jangan berputar membabi buta; pahami mengapa lapisan ekstra itu ada.
Sajikan Hasil sebagai UTF-8
Men-decode referensi numerik menghasilkan karakter Unicode sebenarnya — aksen, simbol, emoji. Pastikan halaman, file, atau field yang menerima teks ter-decode adalah UTF-8, atau karakter yang dipulihkan akan tampil sebagai mojibake.
Utamakan Pustaka Teruji dalam Kode Aplikasi
Untuk konversi sekali pakai alat ini ideal; dalam produksi, decode dengan pustaka yang teruji baik (he di Node, parser bawaan browser via textarea terpisah) alih-alih regex rakitan sendiri, yang rutin melewatkan referensi numerik, karakter astral, dan entitas lawas.

Pertanyaan yang Sering Diajukan

Apakah teks saya dikirim ke server Anda saat saya men-decode-nya?
Tidak. Setiap entitas diselesaikan 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 string ter-escape yang orang decode sering kali sensitif: fragmen yang ditarik dari basis data privat, email internal, catatan pelanggan, atau markup yang disalin dari aplikasi yang tidak ingin Anda bocorkan. Pada decoder sisi server, setiap satunya akan melintasi jaringan ke mesin yang tidak Anda kendalikan; di sini teks tidak pernah meninggalkan tab. Inilah seluruh alasan untuk decode HTML di sisi klien alih-alih menempelkannya ke situs web yang, secara prinsip, bisa menyimpan salinan segala sesuatu yang diprosesnya.
Apa arti men-decode atau unescape HTML?
Decoding HTML — disebut juga unescaping — adalah kebalikan dari escape HTML: ia mengambil referensi karakter seperti <, &, <, atau © dan mengubah masing-masing kembali menjadi karakter sebenarnya yang diwakilinya (<, &, <, ©). Anda memakainya kapan pun Anda punya string yang disimpan atau dikirim dalam bentuk ter-escape dan Anda butuh teks literalnya kembali — untuk membacanya, mengeditnya, memberinya ke program lain, atau men-debug mengapa sebuah halaman menampilkan &lt; di layar alih-alih <. Jika Anda ingin ke arah sebaliknya dan mengubah karakter menjadi entitas, gunakan pendamping HTML Entity Encoder; keduanya kebalikan persis.
Jenis entitas mana yang bisa ditangani decoder ini?
Ketiga bentuk, dalam campuran apa pun. Ia menyelesaikan referensi bernama (<, &, ©, — dan set entitas bernama HTML5 lengkap), referensi numerik desimal (<, é), dan referensi numerik heksadesimal (<, é). Ia juga merekonstruksi karakter astral-plane di atas U+FFFF dari referensi numeriknya, sehingga emoji seperti 😀 ter-decode dengan benar menjadi 😀. Dan ia mengikuti parsing longgar browser untuk segelintir entitas bernama lawas yang menghilangkan titik koma penutup — &copy 2026 tetap ter-decode menjadi © 2026 — yang akan dilewati parser ketat. Singkatnya, apa pun yang dihasilkan encoder, decoder ini membaliknya.
Mengapa teks saya menampilkan &lt; alih-alih
Itu gejala klasik dari double-encoding. Di suatu tempat dalam pipeline Anda teks di-escape dua kali: pass pertama mengubah < menjadi <, dan pass kedua mengubah & dalam < menjadi &, menghasilkan &lt;. Ketika browser men-decode-nya sekali, ia menampilkan < sebagai teks literal alih-alih <. Untuk memulihkan aslinya, decode dua kali — tempel string di sini untuk mendapatkan <, lalu tempel hasil itu kembali untuk mendapatkan <. Perbaikan sebenarnya ada di hulu: escape tepat sekali, saat output, agar teks tidak pernah di-encode ganda sejak awal.
Apakah output ter-decode aman untuk ditaruh kembali ke sebuah halaman?
Hati-hati di sini. Decoding adalah kebalikan dari escape, sehingga teks ter-decode menurut definisi tidak ter-escape — jika ia mengandung tag <script> atau penangan onerror, markup itu kini hidup kembali. Jangan pernah mengambil input tidak tepercaya, men-decode-nya, dan menyisipkan hasilnya ke halaman Anda dengan innerHTML, atau Anda memperkenalkan kembali persis celah cross-site-scripting (XSS) yang dimaksudkan ditutup oleh escape. Decoding adalah langkah yang tepat saat Anda butuh karakter mentah untuk membaca, mengedit, atau menyimpan; tetapi apa pun yang Anda render kembali ke HTML harus di-escape ulang dalam konteks tujuannya. Jika Anda akan menampilkan hasil ter-decode, jalankan dulu melalui HTML Entity Encoder lagi.
Apakah decoding menangani karakter non-ASCII dan emoji dengan benar?
Ya. Referensi numerik dapat meng-encode titik kode Unicode apa pun, dan decoder menyelesaikan semuanya — huruf beraksen (é → é), simbol (€ → €), em dash (— → —), dan emoji plane-penuh (😀 → 😀). Untuk karakter astral di atas U+FFFF ia merekonstruksi titik kode lengkap alih-alih menghasilkan karakter-separuh yang rusak. Karakter non-ASCII mentah yang sudah ada di input lewat tanpa tersentuh, sehingga string yang mencampur UTF-8 asli dengan entitas ter-decode bersih tanpa merusak bagian mana pun. Pastikan halaman atau file tempat Anda menempelkan hasil disajikan sebagai UTF-8 agar karakter yang dipulihkan tampil dengan benar.
Bagaimana saya meng-encode teks kembali menjadi entitas?
Gunakan pendamping HTML Entity Encoder. Ia mengambil karakter mentah seperti <div> & © dan meng-escape-nya menjadi <div> & ©, dengan opsi untuk output named, desimal, atau hex serta mode "encode semua non-ASCII" untuk charset lawas. Encoding dan decoding adalah kebalikan persis untuk karakter dipesan, sehingga Anda bisa round-trip teks melalui kedua alat tanpa kehilangan. Anda bisa langsung ke sana dengan tombol Tukar arah di halaman ini.
Apakah ini sama dengan URL decoding atau Base64 decoding?
Tidak — ketiganya adalah tiga encoding berbeda untuk tiga pekerjaan berbeda, dan mencampuradukkannya adalah sumber bug yang umum. HTML entity decoding mengubah < kembali menjadi <. URL (percent) decoding mengubah %20 kembali menjadi spasi dan untuk query string serta path — gunakan URL Encoder / Decoder untuk itu. Base64 decoding mengubah string base64 kembali menjadi byte aslinya dan untuk transport aman-biner — gunakan Base64 Encode / Decode. Sebuah nilai bisa dibungkus lebih dari satu di antaranya, jadi decode dalam urutan terbalik dari penerapannya. Alat ini hanya menangani entitas HTML.