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/.