I think the latest version of both files in Classpath should work. Could it possibly be a VM error in adding two chars, and casting the result back to a char? The data is encoded as signed offsets from the current character, but stored as unsigned chars in the String constants; so if your VM does the math wrong, you may be getting a weird index. Another possibility - is your VM correctly handling reading in the UTF string from the constant pool and converting it to char[]?
Can you do some more detective work? What do you get for Character.readChar('a') and Character.readChar('A')? If I'm reading CharData correctly, readChar('a') should be 0x1b02, so that you then index UPPER[54] == '\uffe0' (in other words, 'a' + -30 => 'A'). readChar('A') should be 0xd01, so that you index LOWER[26] == ' ' (or 'A' + 32 => 'a'). Patrik Reali wrote: > > Hi! > > I'm experiencing some problems with java.lang.Character. > The methods toUpperCase and toLowerCase return > wrong results (most of the calls leave the values unchanged, > a few return strange values). I went through the code, > but there's not much.... they're just taking the result from > some tables. > > I'm currently using the latest version of Character and CharData. > > Can anybody confirm (or dismiss) the problem? > > Thanks, > Patrik -- This signature intentionally left boring. Eric Blake [EMAIL PROTECTED] BYU student, free software programmer _______________________________________________ Classpath mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/classpath