EscapováníEscapování (výslovnost eskejpování) je slangový název pro metodu zápisu znaků se speciálním významem v textových řetězcích pomocí posloupností znaků začínajících vybraným, tak zvaným únikovým znakem (anglicky escape character), což dalo název této metodě. Řetězcové literály se obvykle uzavírají do uvozovek nebo apostrofů, což přináší problém, jak vložit do řetězce znak, který slouží pro jeho ohraničení. Jednoduchým a často používaným řešením je zdvojení příslušného znaku. Escapování je metoda, která se neomezuje pouze na vkládání znaků ohraničujících řetězec, ale umožňuje do řetězců vkládat také řídicí znaky, národní znaky, které by mohly způsobovat problémy při zobrazování, přenosu nebo konverzích textu, a jiné znaky se speciálním významem (tzv. metaznaky). Jako únikový znak se nejčastěji používá zpětné lomítko ( Způsoby escapováníZpětná lomítkaVelký vliv na escapování v programovacích jazycích měl jazyk C, ve kterém se problematické znaky v řetězcích zapisují pomocí escape sekvencí začínajících znakem zpětného lomítka (
Toto escapování používá např. jazyk C/C++/C#, JavaScript, MySQL ale třeba i regulární výrazy. Příklad (MySQL): INSERT INTO produkty(id, nazev) VALUES(5, 'džíny Levi\'s');
Příklad (C): char* cesta="C:\\Temp\\";
Entity Podrobnější informace naleznete v článku HTML entita.
Metoda velmi podobná escapování je zápis entit v HTML a XML. Speciálním znakem, který uvádí posloupnost, jež má být interpretována odlišně, je znak ampersand ( Jiné metodyZdvojováníV některých jazycích se místo používání escape sekvencí uvozovky zdvojují. Tuto metodu používá např. BASIC, Sybase, Pascal, rc shell, CSV formát. Příklad (Pascal): var obleceni: string;
obleceni := 'džíny Levi''s';
Příklad pro nalezení řetězce „100 %“ (pro MySQL, které používá % jako zástupný znak): SELECT id FROM clanky WHERE nazev LIKE "100 %%"
Použití jiných omezovačůNěkteré jazyky (Python, Tcl, Bourne shell) mají různé omezovače řetězcových literálů (někdy s poněkud odlišným významem); pokud má být v řetězci pouze jeden z omezovačů, lze pro ohraničení řetězce použít druhý. Některé databázové systémy umožňují dát sloupcům v tabulkách identifikátor obsahující diakritické znaky, ale i např. mezery a jiné znaky. Ty by však působily problém syntaktickému analyzátoru SQL. Databázová řešení si tedy do SQL přidala pravidlo pro stanovení hranic identifikátorů databázových sloupců (použitelné i pro názvy tabulek):
U MS SQL ve výše uvedeném příkladu se, technicky vzato, nejedná o escapování v pravém slova smyslu, protože znaky Další alternativy
OdkazySouvisející článkyExterní odkazy |