2013年2月20日水曜日

mod_wsgiはUnicode型だとバグる?

どうもお久しぶりです。

お仕事楽しいです。
今のところプログラム書くよりインフラなことばっかりやってますけどね。
RedmineセットアップしたりEC2とかRDSに環境作ったり。


本題に入ると、とある理由にお仕事でちょっとしたCGI的なものを書く機会がありました。
PerlとかPHPで書けばよかったんですが、Python推しな僕はPythonで書いてみようかと思い立ちました。

最近はmod_pythonじゃなくてmod_wsgi使おうね的な感じらしいですね?
でまぁ適当に使ってみました。

この辺からWindowsのApache2.2 Python2.7用の3.3のバイナリを落としてインストールして使いました。

だいたいうまく動くんですけど何故か、レスポンスを返すあたりでTypeErrorでUnicodeがなんちゃらと言われて落ちてHTTPの500になるケースがある。
最初は文字コードとかを疑ったんだけど、英数字だけの文字列だった。
色々試してみて、レスポンスで返す文字列をstr()したら落ちなくなった。

なんじゃそりゃと思ってちょっと調べたりコードを斜め読みしたところ、どうもmod_wsgiはUnicode型だとLatin-1にエンコードしてるような感じですね?
ダメだよねそれ。

なんてとこに一昨日くらいにハマって数時間ほどデバッグしたとかね。





P.S.
Windwosストアアプリを作ってみようかと思いたちまして、というか今年の目標にしたのを思い出しまして、ここらを見ながらHelloWorldまではやりました。

0 件のコメント:

コメントを投稿