From: Yukihiro Matsumoto Date: 2010-04-30T12:32:13+09:00 Subject: [ruby-dev:41106] Re: Rails3 M17N まつもと ゆきひろです In message "Re: [ruby-dev:41105] Re: Rails3 M17N" on Fri, 30 Apr 2010 12:00:44 +0900, Fujioka writes: |本当にしっかりやるのであれば、 |1. 受けたときのencodingはASCII-8BITにする あ、そうそう。RackやDBドライバはASCII-8BITを返すべきではない かとかんがえています。 |2. 変換したいencodingがある項目はアプリ側で把握し、 | UTF-8へのforce_encodingを試みる UTF-8なんですか。私はアプリエンコーディングを用いるべきだと思っ ていたのですが。ISO-8859-1なページからPOSTされたリクエストで もUTF-8で来るというのが最近のブラウザの挙動なんでしょうか。もっ ともこの辺はバッドノウハウもたくさんありそうですが。 一般的にどのようにリクエストのエンコーディングを推測している のでしょう。ヒューリスティック? |3. 変換後、encodingのチェックをして、おかしいのは例外を投げる |が理想的だと思います。 |一緒にaccept-encodingみたいな列挙項目をpostしてもらうとか。 このアプローチはアプリ側での対応が必要なので望ましくありませ んね。確実でしょうけど。 |# ちなみに、encode()はASCII-8BITでは例外なので、 |# cgi.rbでは全く使っていない。 元のエンコーディングがわかれば、encode()の第2引数を指定する ことで例外を回避できます。 まつもと ゆきひろ /:|)