From: John Joyce Date: 2008-07-10T09:16:46+09:00 Subject: Re: String#upcase/downcase with UTF-8 strings in Ruby 1.9 On Jul 9, 2008, at 6:25 PM, Yukihiro Matsumoto wrote: > Hi, > > In message "Re: String#upcase/downcase with UTF-8 strings in Ruby 1.9" > on Thu, 10 Jul 2008 07:09:29 +0900, "Stefan Schmidt" > writes: > > |in Ruby 1.9 I get the following behaviour: > | > |>> "aoueäöüé".upcase > |=> "AOUEäöüé" > |>> "AOUEÄÖÜÉ".downcase > |=> "aoueÄÖÜÉ" > | > |I can't find however find a bug in the bug tracking system. > |Doesn't this qualify as a bug? > > The document for String#upcase says: > > call-seq: > str.upcase => new_str > > Returns a copy of str with all lowercase letters replaced > with their > uppercase counterparts. The operation is locale insensitive---only > characters ``a'' to ``z'' are affected. > Note: case replacement is effective only in ASCII region. > > "hEllO".upcase #=> "HELLO" > > See "Note:". Tim Bray have persuaded me to do so, since case > conversion outside of ASCII region is highly dependent on country, > language, culture and script. > > matz. > This leaves the perfect opening for people to contribute locale or language specific extensions to String. It would make a great gem with a plug-in architecture. Just add options for the language you want to use. In any case it can get very tricky to do character conversions with different languages.