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