From: Hidetoshi NAGAI Date: 2008-01-13T09:15:33+09:00 Subject: [ruby-dev:33074] Re: strings of UNKNOWN-8BIT 永井@知能.九工大です. From: "NARUSE, Yui" Subject: [ruby-dev:33073] Re: strings of UNKNOWN-8BIT Date: Sun, 13 Jan 2008 03:14:32 +0900 Message-ID: <47890390.5060105@airemix.com> > Ruby の default_external は基本的に locale から情報を取ってきているので > すが、「Tcl/Tk が持っているシステムエンコーディング情報」はどこからシス > テムエンコーディングを入手しているのですか?パッと調べた限りではこちらも > locale なように見えたのですが。 基本的には locale ですが,locale での獲得には失敗しても Tcl/Tk が知っている名前であればそれが使われます. # 例えば Linux 上で LANG=macJapan tclsh とか. その状況では当然 Ruby での encoding 変換は使えませんが, Tcl/Tk での変換は使えます. もちろん,そうした string をそのまま Ruby 上で文字列処理をすると 不適切な処理になる可能性が高いわけですが, Tk の GUI 上での文字化けは回避することが可能です. 「そうした encoding 名まですべて Ruby でサポートします」なら 問題はないのでしょうけれど,そんな宣言をするのは多分無茶ですよね? あるいは,Ruby の対応 encoding 集合が Tcl/Tk の対応 encoding 集合の 完全な super set になっているのであれば, table を用意するだけでいいのかもしれません. ですがそういう対応をするにしても,Tcl/Tk はともかく, あらゆるケースで super set を維持できるとは (多分) 保証できませんよね? -- 永井 秀利 (九工大 知能情報) nagai@ai.kyutech.ac.jp