成瀬です。

(2010/04/30 16:50), Yukihiro Matsumoto wrote:
> まつもと ゆきひろです
> 
> In message "Re: [ruby-dev:41115] Re: Rails3 M17N"
>      on Fri, 30 Apr 2010 16:42:50 +0900, Shin-ichiro OGAWA<rust.stnard / gmail.com>  writes:
> 
> |例えば MySQL ドライバである MySQL/Ruby では全て ASCII-8BIT になるので、
> |controller/view/helper/model の中でUTF-8文字列と結合したりすると
> |上記のエラーが発生します。
> 
> ありがとうございます。
> 
> |なので、データベース周りでの問題は、
> |DBドライバで適切なencodingをつけて返す or force_encoding すれは大丈夫そうです。
> 
> ドライバでやるべきか、フレームワークでやるべきか悩ましいとこ
> ろですね。個人的には、アダプタかフレームワークかいずれかで対
> 応して、ドライバはASCII-8BITを返すべきではないかと思いつつあ
> ります。

いろいろ考えたんですが、「ちゃんと設定しろYO!」って指摘して回る先は少ない方がいいので、
実はドライバで設定するのがベストじゃないかと思いつつあります。

理屈の上でも、それが「文字列」だとわかっているならエンコーディングを設定するべきなのですが、
DB から出てくる時点で文字列かバイナリ列かわかっているはずなので。むしろ、後工程になると
varchar(xx) から出てきたのか、 blob(xx) から出てきたのかわからなくなりますし。

-- 
NARUSE, Yui  <naruse / airemix.jp>