From: Pascal B. <pj...@in...> - 2006-12-14 12:39:01
|
Hoehle, Joerg-Cyril writes: > Pascal Bourguignon wrote: > >If I launch with clisp -norc -E utf-8 it works ok. > >C/USER[132]> (ext:convert-string-to-bytes "=C3=A7=C4=B1kartmak" charse= t:utf-8) > >*** - Character #\u0131 cannot be represented in the character set > > CHARSET:ISO-8859-15 > >SOFTWARE-VERSION "GNU C 3.3 20030226 (prerelease) (SuSE Linux)" >=20 > Cannot reproduce. Please tell us how you launched CLISP (e.g. $LANG > and $LC_* settings and other relevant stuff). >=20 > The funny thing I observe is if I paste the turkish characters into > a Gnome terminal set to UTF-8 where CLISP runs with LANG=3DC > lispinit.mem, then the two non-ASCII characters disappear (and > (length "kartmak") is 7, so nothing invisible here). I have no idea > what process is causing this. Possibly readline? Ok, I've found the problem: I have a dribble open, and while the terminal is in utf-8, the files are in iso-8859-15 by default. *DEFAULT-FILE-ENCODING* #<ENCODING ISO-8859-15 UNIX> *TERMINAL-ENCODING* #<ENCODING UTF-8 UNIX> Now, the problem is that DRIBBLE doesn't take an external-format argument, so I cannot portably specify the encoding for the dribble file... The above error message is signaled even before CONVERT-STRING-TO-BYTES is called, by the input processing of DRIBBLE.=20 Perhaps DRIBBLE should use CUSTOM:*TERMINAL-ENCODING* ? --=20 __Pascal Bourguignon__ http://www.informatimago.com/ Un chat errant se soulage dans le jardin d'hiver Shiki |