From: Nicolas N. <ne...@ma...> - 2006-10-23 11:55:31
|
Hello, I have a file with German "Umlaute". When I try to load it I get debugger invoked on a SB-INT:STREAM-DECODING-ERROR in thread #<THREAD "initial thread" {1002270781}>: decoding error on stream #<SB-SYS:FD-STREAM for "file /home/neuss/Programming/lisp/stundenplan.lisp" {100306FB41}> (:EXTERNAL-FORMAT :UTF-8): the octet sequence (246 114 115 97) cannot be decoded. I guess that I have to switch SBCL to ISO-8859-1. How is this done? (Is this somewhere in the manual? I didn't find it.) Thanks, Nicolas |
From: Nikodemus S. <nik...@ra...> - 2006-10-23 12:32:15
|
Nicolas Neuss <ne...@ma...> writes: > I have a file with German "Umlaute". When I try to load it I get > > debugger invoked on a SB-INT:STREAM-DECODING-ERROR in thread > #<THREAD "initial thread" {1002270781}>: > decoding error on stream > #<SB-SYS:FD-STREAM for "file > /home/neuss/Programming/lisp/stundenplan.lisp" {100306FB41}> > (:EXTERNAL-FORMAT :UTF-8): > the octet sequence (246 114 115 97) cannot be decoded. > > I guess that I have to switch SBCL to ISO-8859-1. How is this done? > (Is this somewhere in the manual? I didn't find it.) External-format support is sadly underdocumented in the manual for now. You need to supply an :EXTERNAL-FORMAT argument to LOAD/COMPILE-FILE/OPEN/WITH-OPEN-FILE. (mapcar #'caar sb-impl::*external-formats*) Should give you a (non-exhaustive) list of valid argument values to :EXTERNAL-FORMAT, which includes among others :ASCII, :LATIN-1, :UTF-8, and naturally :EBDIC-US. Cheers, -- Nikodemus Schemer: "Buddha is small, clean, and serious." Lispnik: "Buddha is big, has hairy armpits, and laughs." |
From: Christophe R. <cs...@ca...> - 2006-10-23 12:52:11
|
Nikodemus Siivola <nik...@ra...> writes: > External-format support is sadly underdocumented in the manual for > now. You need to supply an :EXTERNAL-FORMAT argument to > LOAD/COMPILE-FILE/OPEN/WITH-OPEN-FILE. A little bit more detail on the "sadly underdocumented" bit: it isn't so much that the documentation is incomplete as the implementation itself; while what we have works for Unixish systems, we don't yet have the kind of support for MSDOS and (Old)Mac line endings, Win32 byte-order marks, and the like that would let us properly document things; additionally, the implementation is a little bit "smelly" in that there are multiple pieces of functionality that have to be implemented for external formats (FFI translations, string-to-octets, and stream translations, for example) that are not implemented even for all currently supported external formats. Cheers, Christophe |
From: Nicolas N. <ne...@ma...> - 2006-10-23 13:34:21
|
Nikodemus Siivola <nik...@ra...> writes: > External-format support is sadly underdocumented in the manual for > now. You need to supply an :EXTERNAL-FORMAT argument to > LOAD/COMPILE-FILE/OPEN/WITH-OPEN-FILE. > > (mapcar #'caar sb-impl::*external-formats*) > > Should give you a (non-exhaustive) list of valid argument values to > :EXTERNAL-FORMAT, which includes among others :ASCII, :LATIN-1, > :UTF-8, and naturally :EBDIC-US. Thank you, (load ... :external-format :latin-1) works. A connected question: is there a way to make SLIME use this option when I press C-c C-k (slime-compile-and-load-file)? Thanks again, Nicolas |