From: Hidetoshi NAGAI Date: 2008-02-08T13:20:02+09:00 Subject: [ruby-dev:33651] Re: require/load/autoload の encoding オプション 永井@知能.九工大です. From: "NARUSE, Yui" Subject: [ruby-dev:33649] Re: require/load/autoload の encoding オプション Date: Fri, 8 Feb 2008 11:22:13 +0900 Message-ID: <47ABBCEF.2030904@airemix.com> > [ruby-dev:33488] とかの延長なのだと思いますが、現時点ではトリッキーな方 > 法で利用者の便宜を図るのはやめた方がいいと思います。素直に > 「Tk.encoding_system を設定しましょう」と言っておいた方が無難でしょう。 トリッキーでしたかね? 明示的な指定なので,そこまではないと思ったのですが.(^_^; ちなみに Tk では Tk.encoding_system と Tk から返す文字列の デフォルトの encoding とは別々に指定することができるように する予定です (少なくとも現時点ではですが). # Tk.encoding_system は Tk 上の I/O で使われるので # Encoding.default_external に揃えるが, # スクリプト上で扱いたい文字列は必ずしも default_external とは # 一致しないと考えられるため. > この手の問題は Win32OLE や [ruby-dev:33550] の Object#inspect、[ruby- > dev:33303] の Time#strftime 等方々で発見されているので、将来的に統一的な > 方法が確立されたらそれに乗るのがよいかと。 そうなるのでしたら,多分,それに素直に乗っかるだろうと思います. # 一体どれが 1.9 の確定仕様で,どこが暫定/変更の可能性ありで, # 何がどういう形で今後の実装予定となっているのかが # わかってなくてすみません. > 一つの方法として、現在の Encoding.default_external 以外に、そのアプリ > ケーションの主たる内部エンコーディングを明示する方法を用意する——例えば > Encoding.primary_encoding を作ればいいかなぁと思っているのですが影響範囲 > をまだ考えきれていません。 グローバルなものはまつもとさんに嫌がられてますから, Thread ローカルまたは ThreadGroup ローカルくらいで 設定するものならいいのでしょうか... # ThreadGroup ローカルでは Thread safe ではないからダメかな? # Thread ローカルの場合には,新しいスレッドの primary_encoding は # 生成元 Thread の primary_encoding を引き継ぐということで. -- 永井 秀利 (九工大 知能情報) nagai@ai.kyutech.ac.jp