Pengekod dan Penyahkod Entiti HTML
HTML memerlukan lima aksara di-escape: & menjadi &, < menjadi <, > menjadi >, " menjadi " dan ' menjadi '. Menyahkod <b> memberi <b>.
Cara guna
- Pilih Kod untuk menukar teks kepada entiti, atau Nyahkod untuk menukar entiti kembali kepada teks, kemudian tampal teks anda.
- Semasa mengekod, pilih sejauh mana. Asas hanya meng-escape lima aksara yang tidak selamat dalam HTML. Bernama menggunakan nama seperti © jika ada. Perpuluhan dan Hex menukar setiap aksara bukan ASCII kepada entiti berangka.
- Salin hasilnya. Semasa menyahkod, alat ini juga memberitahu berapa banyak entiti yang ditemui.
Cara kiraan
Entiti HTML bermula dengan &, berakhir dengan koma bertitik, dan mewakili satu aksara. Ia boleh berupa nama (&), titik kod perpuluhan (&) atau titik kod hex (&). Ketiga-tiga bentuk bermaksud sama.
Lima aksara mesti di-escape dalam teks dan nilai atribut: & < > " dan '. Jika & atau < literal dibiarkan, pelayar mungkin membacanya sebagai permulaan entiti atau teg. Apostrof ditulis sebagai ' kerana ' bukan sebahagian daripada HTML 4.
Entiti bernama wujud untuk julat Latin-1 (huruf berdiakritik, ©, ®, £ dan seumpamanya), serta tipografi biasa seperti —, … dan €. Aksara tanpa nama, seperti huruf Korea atau emoji, sentiasa menggunakan entiti berangka. Emoji dikod mengikut titik kod, jadi satu emoji ialah satu entiti, bukan dua.
Penyahkodan membiarkan apa-apa yang tidak dikenali seperti asal. Entiti berangka untuk sifar, untuk nilai melebihi U+10FFFF, atau untuk separuh pengganti menjadi aksara ganti U+FFFD, seperti yang dilakukan pelayar.
Entiti yang kerap digunakan
| Aksara | Nama | Nombor |
|---|---|---|
| & | & | & |
| < | < | < |
| > | > | > |
| " | " | " |
| ' | (tiada dalam HTML 4) | ' |
| ruang tidak terputus | |   |
| © | © | © |
| € | € | € |
| — | — | — |
| … | … | … |
Soalan lazim
Adakah pengekodan melindungi saya daripada XSS?
Meng-escape lima aksara ialah pembetulan yang betul apabila anda meletakkan teks yang tidak dipercayai dalam kandungan elemen HTML atau atribut berpetik. Ia tidak membantu di dalam blok skrip, di dalam atribut tanpa petikan atau dalam URL, yang masing-masing memerlukan escape tersendiri.
Perlukah saya mengekod huruf berdiakritik atau emoji?
Tidak jika halaman dihidangkan sebagai UTF-8, iaitu lalai pada hari ini. Gunakan entiti berangka hanya apabila fail atau sistem anda tidak dapat menyimpan aksara itu.
Apakah beza dengan ruang biasa?
Ruang tidak terputus kelihatan seperti ruang tetapi mengekalkan perkataan di kedua-dua sisi pada satu baris, dan beberapa yang berturut-turut tidak dilipat. Gunakan secara berjimat untuk susun atur.
Mengapa nama seperti &foo; dibiarkan tidak berubah?
Penyahkod mengenali nama Latin-1 dan nama biasa yang disenaraikan dalam panduan, kira-kira 130 kesemuanya. Entiti yang tidak dikenali dikekalkan seperti ditulis dan bukannya diteka.
Adakah teks saya dihantar ke pelayan?
Tidak. Pengekodan dan penyahkodan berjalan dalam pelayar anda.