Fortunately I've discovered a way to do this. Unfortunately it requires explicit use of Java.
>> s = "Café"
=> "Café"
>> s.upcase
=> "CAFé"
>> s.to_java_string.to_upper_case
=> "CAFé"
>> java.lang.String.new(s).to_upper_case
=> "CAFÉ"
It's intriguing that converting from a Ruby to a Java String does not behave the same way as creating a Java String.
Furthermore;
>> s.to_java_string.to_s
=> "Café"
Suggests that the encoding of the converted String is incorrect.
Regards,
Matthew Ueckerman