groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul King <pa...@asert.com.au>
Subject Re: Escaping unicode reference in slashy string
Date Tue, 09 Feb 2016 01:40:00 GMT
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"

Cheers, Paul.

On Tue, Feb 9, 2016 at 8:17 AM, David M. Karr
<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