#やーっとーばーぐーがーとーれーたー。くっそー分かっちまえば単純なことにこんなに時間を費やすとは。
#Allegroでforeign function callの引数型を (* :char) にしておくと文字列の内部表現 (UCS2) と外部表現の変換をやってくれるんだけど、変換は*locale*に依存するのであった。自分の環境ではutf-8 (C.utf-8) なので日本語渡してちゃんと動いてたのに、あるツールだとlatin-1 (C.latin-1) になってて日本語が全部'?'に化けてた。
#LOCALE設定してないときのデフォルト値が違ってるんだぜ。後知恵で見れば*locale*をチェックすればすぐわかったことだけど、複数プロセスが絡み合うプログラムなもんで、「手元で動いてるコード」と「動かないツール」との差分部分のコードで何かしくじってるはず、と思い込んでそっちばっかり追いかけてた。
#ああ。つい最近自分も locale ではまりました。Java のプログラムがターミナルでは動くけど、Apache経由だと動かないという症状で。