Amazon

2010年8月2日月曜日

Shift-JISなんて大嫌い

Shift-JISなんてものを使っているから、日本人は開発の手間かかるんだよ。
昨今は、サーバーもクライアントも、UTF-8が主流になって、快適快適と思っているんですけど、携帯電話では、UTF-8で最近の機種はいけちゃうと思うんですけど、例によって、auはshift-jisじゃないとダメと未だに書いてある。
(実際は、UTF-8で行けるとかあちこちに書いてあるので、更新してないとか、過去の機種を活かせとか、そんな理由か…。)
となると、携帯サイトの場合、すべての機種となるとやはりShift-JISとなるわけ。
以前、PHPで、utf-8でサーバーサイドで作って、それを文字列変換してshift-JISで表示されてしまうというのを作ったけど、公言していないが、今年のテーマは、google仕様にするため、脱LAMPだったりするので、Pythonでがんばってみた。

Shift-JISのページつくるところまではOK。
しかし、Formで日本語をPOSTすると、化けた。c
さて、どうするか、google先生に聞くと、setting.pyのDEFAULT_CHAR_SET="sjis"で行けるようだ。
しかし、google app engineの場合、これをどうやって実装させるのかわからん。
Java版ではみつかったけど、Python版のやり方がわからん。
そもそも、文字の化け方も、2バイトコードというより1バイトコードなので、このへんも不思議。
なので、さらに検索。
…見つかった。

Google App Engine / Python での Shift_JIS 問題

なんか納得しないやり方だけど、挙動は納得。
このやり方で、FormのShift-JIS問題も無事解決。
GAEの仕様変えるなよって感じだけど…。

改めて、日本人は、いい加減Shift-JISを捨てようよ!
Shift-JISしか表示できない携帯は、キャリア会社でデータ送信時に変換かけようよ。
化石機種まで対応する必要を疑問視するよ、本当に。