Pengekod & Penyahkod Entiti HTML
Kodkan aksara yang dianggap oleh HTML sebagai markup, dan jika perlu semua aksara bukan ASCII juga, atau tukar entiti seperti é dan — kembali kepada teks biasa. Kedua-dua arah berjalan dalam pelayar anda, dan input yang dinyahkod tidak pernah dipaparkan sebagai HTML aktif.
0 aksara · 0 perkataan · 0 baris
0 aksara · 0 perkataan · 0 baris
Berjalan sepenuhnya dalam tab pelayar ini. Teks Anda tidak pernah dimuat naik atau disimpan.
Aksara biasa dan entitinya
Bentuk bernama, perpuluhan dan heksadesimal semuanya dinyahkod kepada aksara yang sama. Pengekod mengenali 216 entiti bernama biasa; penyahkod memahami setiap rujukan bernama dalam standard HTML.
| Aksara | Bernama | Perpuluhan | Heks |
|---|---|---|---|
& | & | & | & |
< | < | < | < |
> | > | > | > |
" | " | " | " |
' | ' | ' | ' |
(ruang tanpa pemisah) | |   |   |
© | © | © | © |
® | ® | ® | ® |
™ | ™ | ™ | ™ |
€ | € | € | € |
£ | £ | £ | £ |
¥ | ¥ | ¥ | ¥ |
— | — | — | — |
– | – | – | – |
… | … | … | … |
« | « | « | « |
» | » | » | » |
° | ° | ° | ° |
× | × | × | × |
÷ | ÷ | ÷ | ÷ |
é | é | é | é |
π | π | π | π |
→ | → | → | → |
😀 | — | 😀 | 😀 |
Daripada 252 entiti dalam HTML 4 kepada 2,231 dalam HTML5
Rujukan aksara ialah cara menulis sesuatu aksara dengan ASCII sahaja. Rujukan angka boleh digunakan untuk mana-mana titik kod Unicode, dalam perpuluhan (é) atau heksadesimal (é). Rujukan bernama lebih mudah diingat: HTML 4 mentakrifkan 252 daripadanya, merangkumi huruf Latin-1 seperti é, huruf Yunani, simbol matematik dan tanda tipografi seperti — dan …. Menariknya, ' tidak termasuk dalam senarai itu; ia datang daripada XML dan hanya menjadi sah dalam HTML bersama HTML5.
HTML5 mengembangkan senarai itu kepada 2,231 rujukan aksara bernama dengan menyerap set entiti MathML, jadi nama seperti ✓, ★ dan ≂̸ kini berfungsi dalam setiap pelayar semasa. Jumlah itu termasuk ejaan lama tanpa koma bertitik penutup, seperti & dan ©, yang masih diterima oleh penghurai demi keserasian tetapi tidak sepatutnya anda tulis. Pengekod di sini menghasilkan nama HTML 4 yang disokong secara meluas serta ', dan menggunakan rujukan angka untuk selebihnya; penyahkod menyerahkan teks kepada penghurai pelayar sendiri, jadi ia memahami kesemua 2,231 nama itu.
Apa yang perlu dikodkan, dan bila pengekodan tidak mencukupi
Only & < > " ' ialah tetapan untuk kerja harian: ia melarikan lima aksara yang boleh menamatkan nod teks atau atribut bertanda petikan, memadai untuk memaparkan contoh kod pada halaman atau meletakkan teks pengguna dengan selamat di dalam HTML. Also every non-ASCII character turut menukar é, € dan emoji kepada rujukan, untuk saluran yang jarang ditemui yang tidak boleh membawa UTF-8, seperti sesetengah templat e-mel lama atau sistem yang merosakkan pengekodan. Named, Decimal dan Hex hanya mengubah cara rujukan dieja; ketiga-tiganya dinyahkod kepada aksara yang sama. Halaman yang disimpan sebagai UTF-8 tidak memerlukan entiti untuk huruf beraksen.
Pelarian hanya melindungi konteks HTML dan tidak lebih daripada itu. Teks yang dimasukkan ke dalam blok skrip, pengendali peristiwa sebaris seperti onclick, atribut style atau href yang mungkin bermula dengan javascript: memerlukan pengendalian berbeza, dan pengekodan entiti sahaja tidak mencegah skrip merentas tapak di situ. Rangka kerja seperti React melarikan teks secara lalai, jadi pelarian berganda ialah pepijat yang lebih biasa dalam aplikasi moden: pengguna melihat & di tempat yang sepatutnya ada ampersand. Untuk membuang teg sepenuhnya, tukar markah naik dengan HTML ke TXT; untuk pelarian dalam URL, gunakan Pengekodan & Penyahkodan URL.
Soalan lazim
- Aksara manakah yang mesti dikodkan dalam HTML?
- Dalam teks, & dan < ialah yang paling penting, manakala > dilarikan mengikut konvensyen. Dalam nilai atribut, larikan juga aksara petikan yang membatasinya. Melarikan kelima-limanya meliputi kedua-dua keadaan.
- Apakah perbezaan antara dan ruang biasa?
ialah ruang tanpa pemisah baris, U+00A0. Ia kelihatan seperti ruang biasa tetapi menghalang pemutusan baris pada titik itu dan tidak dikuncupkan apabila beberapa ruang muncul bersama, tidak seperti ruang biasa dalam HTML.- Mengapa halaman saya memaparkan & dan bukan simbol ampersand?
- Teks itu dilarikan dua kali: sekali dalam data anda dan sekali lagi oleh templat atau rangka kerja anda. Simpan teks mentah dan biarkan satu lapisan, biasanya templat, melakukan pelarian semasa output.
- Selamatkah menyahkod HTML daripada sumber yang tidak dipercayai di sini?
- Ya. Penyahkod menghurai input sebagai kandungan teks biasa, jadi teg tidak dicipta, skrip tidak dijalankan dan gambar tidak dimuatkan. Hanya rujukan entiti ditukar kepada aksara.
- Entiti bernama atau entiti angka, yang mana lebih baik?
- Rujukan bernama lebih mudah dibaca, manakala rujukan angka berfungsi untuk setiap aksara dan dalam setiap penghurai XML. Dalam XML tanpa DTD, hanya
&,<,>,"dan'yang dipratakrifkan.