xibbarです。

> |>  あ、そうそう。RackやDBドライバはASCII-8BITを返すべきではない
> |>  かとかんがえています。
> |
> |画像ファイルをアップロードした時のencodingはどうしますか?
> |POSTもGETもバイナリデータであって文字列じゃないと私は思うのですが。
> |ファイルだけ例外的に扱った方がいいというお考えですか?
> 
> 私の書いたのは「返すべきではないか」、つまり、「返すべきだと
> 思う」ですよ。1文字入るだけで意味が正反対になるとは恐るべき言
> 語ですね、日本語は。
> 
あ。つまり、同意見でしたか。日本語恐るべし。

> とはいえ、バイナリのフィールドとテキストのフィールドが混在し
> ていて、フレームワークレベルでは区別できないと言うのは大問題
> であることには変わりないですね。正直、その点は考えていません
> でした。
> 
>    * フィールドがバイナリかどうか指定する手段を提供する
>    * TYPE="file"のものはとりあえずASCII-8BIT
>      (そんなの区別できたっけ)
>    * それ以外はデフォルトでアプリエンコーディングにforce_encoding
> 
> ですかね。force_encodingは情報の欠損はありませんから。なんか
> 地雷原を作ってるような気もして恐いですが。
> 
cgi.rbの時に同じ問題にぶち当たって、
cgi.rbはUTF-8をデフォルトにして、変更出来るようにしました。
fileの時だけASCII-8BITにしています。

> |>  一般的にどのようにリクエストのエンコーディングを推測している
> |>  のでしょう。ヒューリスティック?
> |>
> |いや、推測出来ません。推測出来ないので、
> |受け手でこのencodingで来るはずだと構えるしかありません。
> 
> とはいえ、世のWebアプリで文字化けを見ることは少なくなりまし
> たよね。それは、
> 
>    * 世の中、基本 UTF-8 で済むようになってきた
>    * なんか良い方法が発見された
> 
世の中ほとんどUTF-8になってきたのと、
ブラウザがIE以外が普及してきたからではないでしょうか。
IE以外が普及して、どのブラウザでも見られるように
みなさん修正してきたのでは?