Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask

Re^2: Regex Matching Unicode and Regex Classes

by McA (Priest)
on Nov 02, 2011 at 14:27 UTC ( #935406=note: print w/replies, xml ) Need Help??

in reply to Re: Regex Matching Unicode and Regex Classes
in thread Regex Matching Unicode and Regex Classes

Hi Moritz,

but what is then the difference to the third case? Is the "default Unicode semantic" changed to something different when local is enabled?

Why is "U+00E4 LATIN SMALL LETTER A WITH DIAERESIS" under locale something different than a letter which is part of a word?

Best regards

  • Comment on Re^2: Regex Matching Unicode and Regex Classes

Replies are listed 'Best First'.
Re^3: Regex Matching Unicode and Regex Classes
by moritz (Cardinal) on Nov 02, 2011 at 14:41 UTC

    Short answer: because Unicode and locales don't mix.

    Long answer: Perl's support for locales comes from a time before the whole encoding/decoding business and Unicode support. So if locales are active, the locale-sensitive parts expect to act on bytes, not on decoded strings.

    Since the locale is not ISO-8859-1 but UTF-8, encoding to Latin-1 doesn't fix it for you.

    If anything, you'd need to encode to UTF-8 to see the \w matching , but even then I don't see it matching. So either my understanding of locales is very wrong, or perl is broken (or a mixture thereof).

      Hi Moritz,

      that sounds plausible, but not satisfying. ;-)

      What is then the right approach to find word boundaries with regex while locale is enabled?

      Best regards

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://935406]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (2)
As of 2018-05-26 16:21 GMT
Find Nodes?
    Voting Booth?