On Mon, May 09, 2005 at 12:08:04AM +0300, Jukka Suomela wrote:
> Package: perl
> Version: 5.8.4-8
> Severity: normal
> 
> It seems that UTF8 encoded strings are sorted incorrectly under "use
> locale". See below for an example.

> LC_COLLATE="fi_FI"
 
> % perl -wle 'use locale; @a = @b = qw(a A b B c C ä Ä ö Ö å Å); 
> utf8::upgrade($_) for @b; print sort @a; print sort @b;' 
> aAbBcCåÅäÄöÖ
> aAöäåÄÅÖbBcC

> Locale: LANG=fi_FI, LC_CTYPE=fi_FI (charmap=ISO-8859-1)

Hi,

AIUI, you're sorting UTF-8 in a ISO-8859-1 locale, and I think perl is
doing the right thing here.

Consider:

% perl -wle 'use locale; use POSIX qw(locale_h); @a = @b = qw(a A b B c C ä Ä ö 
Ö å Å); utf8::upgrade($_) for @b; setlocale(LC_COLLATE, "fi_FI.ISO-8859-1"); 
print sort @a; setlocale(LC_COLLATE, "fi_FI.UTF-8"); print sort @b;'
aAbBcCåÅäÄöÖ
aAbBcCåÅäÄöÖ

Am I missing something?

Cheers,
-- 
Niko Tyni       [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to