まつもと ゆきひろです

In message "Re: [ruby-dev:41107] Re: Rails3 M17N"
    on Fri, 30 Apr 2010 12:41:35 +0900, Fujioka <fuj / rabbix.jp> writes:

|> あ、そうそう。RackやDBドライバはASCII-8BITを返すべきではない
|> かとかんがえています。
|
|画像ファイルをアップロードした時のencodingはどうしますか?
|POSTもGETもバイナリデータであって文字列じゃないと私は思うのですが。
|ファイルだけ例外的に扱った方がいいというお考えですか?

私の書いたのは「返すべきではないか」、つまり、「返すべきだと
思う」ですよ。1文字入るだけで意味が正反対になるとは恐るべき言
語ですね、日本語は。

とはいえ、バイナリのフィールドとテキストのフィールドが混在し
ていて、フレームワークレベルでは区別できないと言うのは大問題
であることには変わりないですね。正直、その点は考えていません
でした。

  * フィールドがバイナリかどうか指定する手段を提供する
  * TYPE="file"のものはとりあえずASCII-8BIT
    (そんなの区別できたっけ)
  * それ以外はデフォルトでアプリエンコーディングにforce_encoding

ですかね。force_encodingは情報の欠損はありませんから。なんか
地雷原を作ってるような気もして恐いですが。

|> 一般的にどのようにリクエストのエンコーディングを推測している
|> のでしょう。ヒューリスティック?
|> 
|いや、推測出来ません。推測出来ないので、
|受け手でこのencodingで来るはずだと構えるしかありません。

とはいえ、世のWebアプリで文字化けを見ることは少なくなりまし
たよね。それは、

  * 世の中、基本 UTF-8 で済むようになってきた
  * なんか良い方法が発見された

のいずれなんでしょうか。

                                まつもと ゆきひろ /:|)