From: Masao Mutoh Date: 2006-04-19T00:19:15+09:00 Subject: [ruby-list:42040] Re: ruby/gtk で日本語 むとうです。 On Wed, 19 Apr 2006 00:04:32 +0900 Takeshi Honda wrote: > お世話になります。 > > windows+ruby/gtkで、Gtk::Entryに日本語を入れると文字化け > します。例えば次のようなコードです。 > > ent = Gtk::Entry.new > … > puts ent.text > コンパイル環境は以下のとおりです。ruby/gtkを使うために、cygwin > のrubyでなく、win32版のrubyを使っています。 > > ruby 1.8.4 (2005-12-24) [i386-mswin32] > cygwin1_5_16_1 > windows XP > ruby-gtk2-0.14.1-1-i386-msvcrt-1.zip > gtk-win32-devel-2.8.14-rc1.exe > uconv-0.4.12.tar.gz > > この環境で、日本語を使えるようにするにはどうしたら良いの > でしょうか。アドバイスをお願いいたします。 まず、Ruby/GTK2では内部的にUTF-8を使う、というのは良いですよね。 で、ご質問の内容は、MS-DOSのプロンプト上で文字化けするのを防ぎたい、 ということでよろしいですか? であれば、UTF-8をShift_JISにしたいということだと思います。 で、それを変換するためにuconvを使おうとされた、という理解でよろしいでしょうか。 コード変換機能はRuby/GLib2(ruby-gtk2に同梱されています)も 持っていますのでそれを利用するのが簡単かと思います。 http://ruby-gnome2.sourceforge.jp/hiki.cgi?GLib (1) GLib.locale_from_utf8(str) (2) GLib.convert(str, to_codeset, from_codeset) (1)が簡単だと思いますが、うまくいかない場合は(2)も試してください。 puts GLib.convert(ent.text, "Shift_JIS", "UTF-8") みたいにするとうまくいくかもしれません。 #未確認です。 P.S. 蛇足ですが、おそらく、現在、Hondaさんが使っている環境は Cygwinは関係ないです。 Ruby/GTK2は、Cygwinのrubyとは一緒に動きませんので。 -- .:% Masao Mutoh