HTML-entiteit-enkodeerder en -dekodeerder
Ontsnap die karakters wat HTML as opmaak beskou, en desgewens ook elke nie-ASCII-karakter, of skakel entiteite soos é en — terug na gewone teks om. Albei rigtings werk in u blaaier, en gedekodeerde invoer word nooit as lewendige HTML vertoon nie.
0 karakters · 0 woorde · 0 reëls
0 karakters · 0 woorde · 0 reëls
Werk heeltemal in hierdie blaaieroortjie. Jou teks word nooit opgelaai of gestoor nie.
Algemene karakters en hul entiteite
Benoemde, desimale en heksadesimale vorme dekodeer almal na dieselfde karakter. Die enkodeerder ken 216 algemene benoemde entiteite; die dekodeerder verstaan elke benoemde verwysing in die HTML-standaard.
| Karakter | Benoem | Desimaal | Heks |
|---|---|---|---|
& | & | & | & |
< | < | < | < |
> | > | > | > |
" | " | " | " |
' | ' | ' | ' |
(vaste spasie) | |   |   |
© | © | © | © |
® | ® | ® | ® |
™ | ™ | ™ | ™ |
€ | € | € | € |
£ | £ | £ | £ |
¥ | ¥ | ¥ | ¥ |
— | — | — | — |
– | – | – | – |
… | … | … | … |
« | « | « | « |
» | » | » | » |
° | ° | ° | ° |
× | × | × | × |
÷ | ÷ | ÷ | ÷ |
é | é | é | é |
π | π | π | π |
→ | → | → | → |
😀 | — | 😀 | 😀 |
Van 252 entiteite in HTML 4 tot 2 231 in HTML5
'n Karakterverwysing is 'n manier om 'n karakter met slegs ASCII te skryf. Numeriese verwysings werk vir enige Unicode-kodepunt, in desimaal (é) of heksadesimaal (é). Benoemde verwysings is makliker om te onthou: HTML 4 het 252 daarvan gedefinieer, wat Latin-1-letters soos é, Griekse letters, wiskundige simbole en tipografiese tekens soos — en … insluit. Vreemd genoeg was ' nie daarby nie; dit kom uit XML en het eers met HTML5 geldige HTML geword.
HTML5 het die lys uitgebrei na 2 231 benoemde karakterverwysings en die MathML-entiteitstel opgeneem, sodat name soos ✓, ★ en ≂̸ nou in elke huidige blaaier werk. Die getal sluit ou spelwyses sonder die sluitende kommapunt in, soos & en ©, wat ontleders steeds vir versoenbaarheid aanvaar, maar wat jy nie behoort te skryf nie. Die enkodeerder hier gebruik die wyd ondersteunde HTML 4-name plus ' en val terug op 'n numeriese verwysing vir alles anders; die dekodeerder gee teks aan die blaaier se eie ontleder, sodat dit al 2 231 name verstaan.
Wat om te ontsnap, en waar ontsnapping nie genoeg is nie
Net & < > " ' is die instelling vir daaglikse werk: dit ontsnap die vyf karakters wat 'n teksnodus of 'n aanhaling-attribuut kan beëindig, wat genoeg is om 'n kodevoorbeeld op 'n bladsy te wys of gebruikerteks veilig in HTML te plaas. Ook elke nie-ASCII-karakter skakel é, € en emoji ook na verwysings om, vir die seldsame kanaal wat nie UTF-8 kan dra nie, soos sommige ou e-possjablone of stelsels wat enkoderings verhaspel. Benoem, Desimaal en Heks verander net hoe 'n verwysing gespel word; al drie dekodeer na dieselfde karakter. 'n Bladsy wat as UTF-8 gestoor is, het geen entiteite vir letters met aksente nodig nie.
Ontsnapping beskerm slegs die HTML-konteks. Teks wat in 'n skripblok, 'n inlyn-gebeurtenishanteerder soos onclick, 'n style-attribuut of 'n href wat met javascript: kan begin, ingevoeg word, vereis ander hantering, en entiteitenkodering alleen voorkom nie kruiswerf-skripting daar nie. Raamwerke soos React ontsnap teks by verstek, so dubbele ontsnapping is die algemener fout in moderne toepassings: gebruikers sien & waar 'n ampersand moes wees. Om etikette heeltemal te verwyder, skakel die opmerking om met HTML na TXT; vir ontsnapping binne URL's, gebruik URL-enkodering en -dekodering.
Gereelde vrae
- Watter karakters moet in HTML ontsnap word?
- In teks is & en < noodsaaklik, en > word volgens konvensie ontsnap. Binne 'n attribuutwaarde moet jy ook die aanhalingsteken ontsnap wat dit afbaken. Om al vyf te ontsnap dek albei gevalle.
- Wat is die verskil tussen en 'n gewone spasie?
is die nie-breekspasie, U+00A0. Dit lyk soos 'n spasie, maar voorkom 'n reëlbreuk op daardie punt en word nie saamgevoeg wanneer verskeie saam voorkom nie, anders as gewone spasies in HTML.- Hoekom wys my bladsy & in plaas van 'n en-teken?
- Die teks is twee keer ontsnap: een keer in jou data en weer deur jou sjabloon of raamwerk. Stoor rou teks en laat net een laag, gewoonlik die sjabloon, die ontsnapping met uitvoer doen.
- Is dit veilig om HTML uit 'n onbetroubare bron hier te dekodeer?
- Ja. Die dekodeerder ontleed invoer as gewone teksinhoud, so etikette word nie geskep nie, skripte loop nie en beelde laai nie. Slegs entiteitverwysings word na karakters omgeskakel.
- Is benoemde of numeriese entiteite beter?
- Benoemde een is makliker om te lees, numeriese werk vir elke karakter en in elke XML-ontleder. In XML sonder 'n DTD is slegs
&,<,>,"en'vooraf gedefinieer.