help-smalltalk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-smalltalk] Re: [bug] putting character in a stream


From: Stephen
Subject: Re: [Help-smalltalk] Re: [bug] putting character in a stream
Date: Fri, 06 Mar 2009 07:53:46 +1300
User-agent: Thunderbird 2.0.0.19 (Macintosh/20081209)



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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]