From: Yugui Date: 2010-04-30T18:09:22+09:00 Subject: [ruby-dev:41119] Re: Rails3 M17N 2010/4/30 Yukihiro Matsumoto : > 一つの例としては、テンプレートのエンコーディングと埋め込む文 > 字列(たとえばデータベースからのもの)のエンコーディングがズレ > てて、 > > incompatible character encodings: ASCII-8BIT and UTF-8 (Encoding::CompatibilityError) > > が出る、と私は聞きました。 それはアプリケーションのバグです。バグを書くとバグが出ますし、データベースがカラムに紐付いたエンコーディングの代わりにASCII-8BITを返すようにしても解決しません。 今時のデータベースシステムはコネクションやテーブルやカラムがエンコーディングを持ってるので、そのエンコーディングをドライバ側で紐づけてやるのが一番情報が落ちなくて良いと思います。それでPostgreSQLのアダプタにはそういうパッチを送ってacceptされました。 M17Nが必要なアプリケーションならテンプレートにUS-ASCII外の文字を書くべきでないし、逆に特定のエンコーディングを仮定できるならばデータもscript encodingもそのエンコーディングに合わせるべきです。そして、そのいずれもが、DBMS側で認識しているエンコーディングの文字列が返ってきた方が嬉しい筈です。ASCII-8BITにする益がどこにあるのか分かりません。 -- Yuki Sonoda (Yugui) yugui@yugui.jp http://yugui.jp