The problem is that asCharacter (by design) returns a UnicodeCharacter
when given a character that is >128.  You need to use (Character value:
byte) to explicitly request a Character:

st> (Character value: 128) class
Character
st> (Character codePoint: 128) class
UnicodeCharacter
st> 128 asCharacter class
UnicodeCharacter

For ease of use, Characters and UnicodeCharacters are the same for the
range 0-127.  This works because sane representations of Unicode are
backwards compatible with 7-bit ASCII, but does not work for the range
128-255.  A Character in the range 128-255 is the /octet 128-255 stored
in a representation of a Unicode string/ (i.e. in a String), while a
UnicodeCharacter in the range 128-255 is the /character 128-255 of the
Unicode character set/.

Thank you for the clear explanation, and my code works now. I was porting some code from Squeak so obviously Character handling is slightly different there.

Stephen


_______________________________________________
help-smalltalk mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-smalltalk

Reply via email to