groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David M. Karr" <davidmichaelk...@gmail.com>
Subject Re: Escaping unicode reference in slashy string
Date Tue, 09 Feb 2016 16:28:45 GMT
On 02/08/2016 06:55 PM, Edinson E. PadrĂ³n Urdaneta wrote:
> Hi, David. Maybe this can be of help ~> { 
> http://www.groovy-lang.org/single-page-documentation.html } The Dollar 
> slashy string could be what you are looking for. Cheers.

Just so it's clear, this doesn't deal with "\uabcd".  With one 
backslash, it fails with a compile error.  With two backslashes, it 
produces two backslashes.  From what I now understand, the only thing 
that works if you have "\u" in the string is a GString (double quotes).
>
> On Mon, Feb 8, 2016 at 9:38 PM, David M. Karr 
> <davidmichaelkarr@gmail.com <mailto:davidmichaelkarr@gmail.com>> wrote:
>
>     On 02/08/2016 05:40 PM, Paul King wrote:
>
>         Unicode processing is done before anything else. For your
>         case, you
>         need to make it not look like a unicode sequence - which you
>         rightly
>         did with the double backslash variant. But you then need to
>         pick the
>         GString form that does the appropriate thing with the sequence of
>         characters that passed through the initial parsing stages. So the
>         trick is to use a normal GString not a slashy string:
>
>         def var = "c:\\uabc.txt"
>
>
>     I can see it can get complicated to select the correct form,
>     depending on problematic characters in the string.  Is there
>     anything like the Perl "qw()" function, which I believe augments a
>     string with any required quoting to retain all the original
>     characters?
>
>
>         Cheers, Paul.
>
>         On Tue, Feb 9, 2016 at 8:17 AM, David M. Karr
>         <davidmichaelkarr@gmail.com
>         <mailto:davidmichaelkarr@gmail.com>> wrote:
>
>             Someone was trying to point out difficulties with various
>             string values in
>             slashy strings.  I was able to refute most of his
>             arguments, but he pointed
>             out a curious issue involving unicode sequences.
>
>             If you have the following:
>             --------------
>             def var = /c:\uabc.txt/
>             ---------------
>
>             This will fail to compile, as "\uabc." is not a valid
>             unicode sequence.
>
>             So, the obvious thing to try is this:
>             ------------------
>             def var = /c:\\uabc.txt/
>             ------------------
>
>             That would fix it, right?  Well, sort of.  It doesn't get
>             a compile error.
>             I expected it to produce "c:\uabc.txt", but instead it
>             produced
>             "c:\\uabc.txt".
>
>             What are relatively simple workarounds for this?
>
>
>


Mime
View raw message