On Mon, 01 Mar 2004 20:55:14 +0000
Nick Ing-Simmons <[EMAIL PROTECTED]> wrote:

> Larry Wall <[EMAIL PROTECTED]> writes:
> >On Wed, Feb 25, 2004 at 06:19:02PM +0100, Sebastian Lehmann wrote:
> >: For this example the search value will be "IbaÃez". Because of the search
> >: isn't case-sensitive, all letters should be uppercased, using the uc method.
> >
> >I don't think this is your problem, but in general I think it's better
> >to canonicalize with lc() because it will try to undo both uppercase
> >and titlecase.
> 
> Since you are here ;-)
> 
> Why does à not uppercase to à ?
> 
> Which bits of which Unicode.org files are used by uc()?

lib/unicore/To/Upper.pl includes a toupper mapping of à to à properly.

00EE            00CE
00EF            00CF
00F0            00D0
00F1            00D1 <--HERE
00F2            00D2
00F3            00D3

If !SvUTF8() and C locale would be used,
uc() does not uppercase "\xF1" to any other character.

print uc(chr(0xF1)) eq chr(0xD1)
    ? "ok" : "not ok", " in ASCII\n";  # maybe not ok

print uc(pack('U', 0xF1)) eq pack('U',0xD1)
    ? "ok" : "not ok", " in utf8\n";   # of course ok

print uc(chr(0xF1)."\x{FEFF}") eq chr(0xD1)."\x{FEFF}"
    ? "ok" : "not ok", " with ZWNBSP\n";   # ok, it's unicodified

Regards,
SADAHIRO Tomoyuki

Reply via email to