Hi list,
I'm running SBCL 0.9.13.52 (same error with 0.9.13 release) and TBNL
0.9.10.
I've got a simple page set up that I need to simply print the return
value of an external function. That function returns a list containing
UTF-8 characters. I've set *show-lisp-errors-p* to T, here is the
error:
encoding error on stream #<SB-SYS:FD-STREAM for "standard output" {A6877B9}>
(:EXTERNAL-FORMAT :ASCII):
the character with code 20170 cannot be encoded.
I had done some digging on google and found someone in a similar
situation with TBNL, and he tried changing his locale LC_ALL to a
utf-8 one. The above (:EXTERNAL-FORMAT :ASCII part was :ASCII only
after I set my locale to UTF-8, beforehand it was :LATIN-1, which I do
not understand.
Here is the code, if it helps:
(in-package :tbnl-foo)
(setq *dispatch-table*
(list (create-prefix-dispatcher "/tbnl/foo" 'foo)
'default-dispatcher))
(defun foo ()
(let ((foo (jalat::search-hash "hello")))
(with-html-output (*standard-output*)
(:h2 (str foo)))))
(setq *dispatch-table*
(nconc
(mapcar (lambda (args)
(apply #'create-prefix-dispatcher args))
'(("/tbnl/test/" foo)))
(list #'default-dispatcher)))
The external function simply returns a list of plists containing UTF-8
characters. I also tried setting *tbnl-default-external-format* to no
avail.
Thanks guys,
--
Dan Beauchesne
dbeauchesne -at- gmail -dot- com