This bug report is for Squeak 3.8 gamma latest update: #6485
First of all my apologies for the difficult subject title. The matter itself is quite simple.
In MultiCharacter>>asUnicode we read:
asUnicode | table charset v | charset _ EncodedCharSet charsetAt: self leadingChar. " ==> " (charset isKindOf: Unicode class) ifTrue: [^ self charCode]. table _ charset ucsTable. table isNil ifTrue: [^ 16rFFFD]. v _ table at: self charCode + 1. v = -1 ifTrue: [^ 16rFFFD]. ^ v.
EncodedCharSet>>charSetAt: answers a class. Unicode is also a class, to find out whether charset is located in the class tree that starts with Unicode, we have to write:
(charset isKindOf: Unicdoe)
The added 'class' is badly wrong; it takes us into the metaclass hierarchy where the check answers false.
Same for MultiCharacter>>asUnicodeChar.
Greetings, Boris