common lispでcgi

SBCLでコンパイルするのも面倒な気分。
なぜかエンドユーザの会社にいって障害対応なんかしたので今日は疲れているのです。
でも疲れている時に限って色々やりたくなるのはなんでだろ?

ともあれ、今日はCLISPでCGI
POSTする側はこんな感じ。

#!/usr/bin/clisp
(format t "Content-Type: text/html; charset=utf-8~%~%")
(format t "<html>
<meta http-equiv='Content-Type' content='html; charset=utf-8'>
<body>")
(format t "hello clisp!!~%")
;;(format t "ああああ~%")
;;(format t (read-line))
(format t "
<form method='post' action='test3.cgi'>
<input type='text' name='value1'>
<br>
<input type='text' name='value2'>
<br>
<input type='submit' value='submit'>
</form>
</body>
</html>")

で受け取る側はこんな感じ

#!/usr/bin/clisp
(format t"Content-type: text/html~%~%")
(format t "<html>
<meta http-equiv='Content-Type' content='html; charset=utf-8'>
<body>")
(do ((line (read-line t nil 'eof)
(read-line t nil 'oef)))
((eql line 'eof))
(format t line))
(format t "</body>
</html>")

で、いじってたとき気がついたんだけど、日本語が表示できない。
これは困った。うう〜ん。
で調べる調べる。
結局これでいける。

#!/usr/bin/clisp -E UTF-8
(format t "Content-type: text/html~%~%")
(format t "<html>~%")
(format t "<meta http-equiv='Content-Type' content='html; charset=utf-8'>~%")
(format t "<body>~%")
(format t "hello!!~%")
(format t "こんにちは!!~%")
(format t "</body>~%")
(format t "</html>~%")

で投稿しようとしたらhtmlのタグがとおらんやん。
ああぁ。めんどくさい。置換しよ・・・。