Cara menggunakannya
- Pilih Encode untuk menjadikan teks selamat untuk HTML, atau Decode untuk menukar entiti kembali kepada aksara.
- Semasa mengekod, pilih sama ada huruf beraksen dan simbol harus kekal seperti sedia ada atau menjadi entiti.
- Taip atau tampal teks anda; hasil akan dikemas kini serta-merta.
- Salin hasil, atau gunakan “Guna output sebagai input” untuk memastikan ia dinyahkod kembali kepada teks asal.
Cara ia berfungsi
Dalam HTML, beberapa aksara mempunyai makna khas: < memulakan tag, & memulakan entiti, dan " atau ' menamatkan nilai atribut. Untuk memaparkannya sebagai teks, aksara itu mesti ditulis sebagai rujukan aksara: < untuk <, > untuk >, & untuk &, " untuk " dan ' untuk '. Apostrof menggunakan bentuk angka kerana ' tidak ditakrifkan dalam HTML 4.
Semua aksara lain, termasuk huruf beraksen, teks Cina dan emoji, boleh ditulis terus apabila halaman disimpan dan dihantar sebagai UTF-8, iaitu lalai untuk laman web moden. Menukarnya kepada entiti hanya diperlukan untuk sistem yang tidak selamat UTF-8, seperti sesetengah templat e-mel lama atau pangkalan data. Anda kemudian boleh memilih entiti bernama seperti é jika nama lazim wujud (dengan sandaran angka untuk yang lain) atau rujukan angka seperti é untuk setiap aksara.
Penyahkodan tidak menggunakan penghurai HTML pelayar. Ia menggunakan jadual terbina dalam dengan kesemua 252 entiti bernama daripada HTML 4.01, ' dan kira-kira 30 nama HTML5 biasa, serta rujukan perpuluhan dan perenambelasan. Rujukan angka mengikut peraturan HTML5: �, nilai pengganti dan nilai melebihi U+10FFFF menjadi aksara penggantian , dan nilai 128–159 dibaca sebagai Windows-1252, jadi – menjadi tanda sempang en. Beberapa nama lama seperti & dan © juga diterima tanpa koma bertitik penutup, seperti yang dilakukan oleh pelayar. HTML5 mentakrifkan lebih 2,000 nama; nama jarang di luar jadual dibiarkan tidak berubah dan disenaraikan.
Menggunakan jujukan escape pada teks sebelum memasukkannya ke dalam HTML ialah pertahanan penting terhadap skrip rentas tapak (XSS), tetapi ia hanya betul untuk kandungan elemen dan nilai atribut yang dipetik. Teks yang diletakkan di dalam blok <script>, atribut gaya atau URL memerlukan escape yang berbeza.
Contoh
Memaparkan kod pada halaman web
Untuk memaparkan <div class="box"> sebagai teks dalam siaran blog, enkodkannya kepada <div class="box">. Pelayar menunjukkan tag asal dan bukannya mencipta elemen.
Menyediakan teks untuk templat e-mail lama
Dengan “Entiti bernama jika tersedia”, “Café – 5 €” menjadi Café – 5 €, yang dipaparkan dengan betul walaupun e-mel dihantar dengan set aksara bukan UTF-8.
Membersihkan teks yang dikikis atau dieksport
Eksport CMS mengandungi Fish & Chips – £9. Penyahkodan menghasilkan Fish & Chips – £9, sedia untuk ditampal ke dalam hamparan.
Soalan Lazim
Aksara manakah yang mesti di-escape dalam HTML?
Dalam kandungan elemen, & dan < mesti di-escape (> juga disyorkan). Di dalam nilai atribut, escape juga aksara petikan yang mengapit nilai itu. Meng-escape kelima-lima (& < > " ') di semua tempat ialah peraturan mudah dan selamat yang diikuti oleh alat ini.
Apakah perbezaan antara entiti bernama dan entiti berangka?
Entiti bernama seperti © lebih mudah dibaca tetapi hanya wujud untuk set aksara yang terhad. Rujukan berangka seperti © (perpuluhan) atau © (perenambelasan) berfungsi untuk setiap aksara Unicode, termasuk emoji.
Mengapakah dinyahkod kepada sesuatu yang kelihatan seperti ruang?
ialah ruang tanpa putus (U+00A0). Ia kelihatan seperti ruang biasa tetapi menghalang pemecahan baris dan tidak dimampatkan oleh HTML. Ia ialah aksara yang berbeza daripada ruang biasa, yang penting apabila anda membandingkan atau mencari teks.
Perlukah saya mengekod huruf beraksen seperti é?
Tidak perlu jika halaman anda menggunakan UTF-8 (<meta charset="utf-8">), seperti yang dilakukan oleh hampir semua halaman moden. Kekalkan tetapan lalai dan hanya lima aksara khas itu akan di-escape.
Adakah pengekodan mencukupi untuk mencegah XSS?
Ia mencukupi untuk teks tidak dipercayai yang dimasukkan ke dalam kandungan elemen HTML atau ke dalam nilai atribut berpetik. Ia tidak mencukupi untuk kod JavaScript, CSS, atribut tanpa petikan atau URL seperti href="javascript:…", yang memerlukan pengendalian khusus mengikut konteks.
Privasi
Pengekodan dan penyahkodan dilakukan dengan operasi rentetan biasa dalam pelayar anda; teks anda tidak pernah dipaparkan sebagai HTML, dimuat naik, disimpan atau disertakan dalam analitik.