For attached file unicode.lisp [...]
So allegro stores the strings in utf-8 (as confirmed by looking at a trivial fasl), and when a non-latin1 (or cp1252) character is interned from the fasl in a 8-bit variant, it becomes #?. That makes sense.
I'm not sure how to make a latin1 string which is malformed as utf-8.
You just did.
echo 选项 | recode u8..l1 | recode u8..u2 recode: Invalid input in step `UTF-8..ISO-10646-UCS-2'
Thanks a lot! This closes this investigation of strings in allegro. Can you test that the latest checkout passes the test on mlisp8?
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org The difference between a programmer and a user, is that the programmer knows there is no difference between using and programming. — Faré