Escape se snadno použije špatně, protože několik různých úkolů z dálky vypadá podobně. Máte text, text obsahuje speciální znaky a jiný systém ho potřebuje přijmout bez toho, aby ho špatně pochopil. Chyba je předpokládat, že jeden druh escapování funguje všude.
Kódování URL, HTML escape a JSON escape řeší různé problémy. Mezera v query stringu není stejný problém jako znak < ve vykresleném HTML nebo uvozovka uvnitř JSON stringu. Case / Slug / Escape pomáhá tím, že drží tyto outputy blízko sebe, ale užitečná část je vědět, který output patří do cíle, který připravujete.
Kódování URL je pro URL a query hodnoty
Kódování URL použijte, když text míří do části URL, zejména do query parametru nebo hodnoty, která může obsahovat mezery, interpunkci nebo znaky nevhodné pro cestu.
Představte si support odkaz, který má obsahovat vyhledávací dotaz pricing & billing. Přímé vložení této fráze do URL může změnit interpretaci URL, protože & už má význam uvnitř query stringu. Kódování URL převede text do podoby, která může cestovat uvnitř URL, aniž by se zaměnila za URL syntaxi.
To se liší od vytváření slugu. Slug obvykle mění titulek na čitelný segment cesty, například pricing-and-billing. Kódování URL zachovává původní hodnotu příměji pro přenos.
HTML escape je pro text, který se bude renderovat v HTML
HTML escape použijte, když se má text objevit jako text uvnitř HTML kontextu, ne stát se markupem.
Když příklad kódu obsahuje <button> a chcete, aby čtenáři tyto znaky viděli, prohlížeč je potřebuje escapovat. Jinak je může interpretovat jako skutečný element. HTML escape brání tomu, aby se text četl jako HTML syntaxe na místech, kde má obsah zůstat viditelným textem.
To je důležité v dokumentaci, CMS polích, changelozích i produktovém copy. Zvlášť relevantní je to u zdrojového textu s příklady markupu, snippety nebo uživatelskými hodnotami, které se nemají stát součástí struktury stránky.
JSON escape je pro string hodnoty uvnitř JSONu
JSON escape použijte, když text potřebuje bezpečně sedět uvnitř JSON stringu.
Uvozovka je v běžném textu neškodná, ale uvnitř JSON stringu může řetězec ukončit předčasně. Nový řádek také může potřebovat reprezentaci, která udrží JSON validní. JSON escape zachovává hodnotu a zároveň drží okolní JSON parsovatelný.
Často se to objevuje, když týmy sdílejí API příklady, konfigurační snippety, analytics payloady nebo ukázková data. Pokud je další krok širší čištění strukturovaných dat, spojte tento článek s Jak formátovat JSON před sdílením API příkladu a JSON / YAML / TOML převodníkem.
Vyberte escape podle cíle
Nejjednodušší pravidlo je nejdřív cíl.
| Cíl | Použijte | Proč |
|---|---|---|
| URL query hodnota nebo část URL | Kódování URL | Brání tomu, aby se text interpretoval jako URL syntaxe |
| Viditelný text uvnitř HTML | HTML escape | Brání tomu, aby se speciální znaky staly markupem |
| String hodnota uvnitř JSONu | JSON escape | Drží uvozovky, lomítka a nové řádky parsovatelné |
| Veřejný titulek článku nebo routy | Generování slugu | Vytváří čitelný text cesty místo zachování každého znaku |
Converty pomáhá, protože můžete vložit text jednou a porovnat výstupy bez otevírání samostatného encoderu pro každý případ. Úkol zůstane přiměřený. Nestavíte pipeline; připravujete jednu textovou hodnotu pro místo, kam potřebuje jít.
Otevřete Case / Slug / Escape, když se potřebujete rozhodnout, jestli má být další output slug, URL-encoded hodnota, HTML-safe text nebo JSON-safe řetězec.



