Subject: Re: [xsl] Escaping special characters for *nix file path From: Liam R E Quin <liam@xxxxxx> Date: Sun, 29 Jul 2012 10:58:10 -0400 |
On Sun, 2012-07-29 at 15:58 +0200, Wolfgang Laun wrote: > A relatively safe way would be to enclose the path name in apostrophes > (') and escape all contained apostrophes and backslashes with a > backslash. It would be if it worked :-) \ is not special inside '...' in the shell, and neither are ` or $ (in shell-speak, no interpolation happens and there is no escaping) \ *is* special inside "..." (this is the difference between the two forms of quote in fact) so, $ mkdir try $ cd try $ touch "a`date`b" $ ls aSun Jul 29 10:16:42 EDT 2012b $ touch 'a`date`b $ ls a`date`b aSun Jul 29 10:16:42 EDT 2012b $ touch "c\`date\`d" $ ls a`date`b aSun Jul 29 10:16:42 EDT 2012b c`date`d $ This is all about escaping from the shell, though. On Unix (and Linux and OS X) a filename can contain any character except NUL (a zero byte) or / (because that's the path separator). If the resulting files are going to be accessed as URIs though, you also have to avoid a ton of other characters, and \-escaping doesn't work - you have to use uri-escape(), and in that case there's no need to mess around with backslashes either. But all this presupposes particular uses -- presumably XSLT is being used to generate a shell script here. Liam -- Liam Quin - XML Activity Lead, W3C, http://www.w3.org/People/Quin/ Pictures from old books: http://fromoldbooks.org/ Co-author, 5th edition of "Beginning XML", Wrox, June 2012
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Escaping special characte, Wolfgang Laun | Thread | Re: [xsl] Escaping special characte, Wolfgang Laun |
Re: [xsl] Escaping special characte, Wolfgang Laun | Date | [xsl] Exception thrown by OutputURI, Lighton Phiri |
Month |