[ruby-list:49771] TkDND での日本語名の扱い

From: Umino <jam280400@...>
Date: 2014-03-06 03:50:47 UTC
List: ruby-list #49771
 Umino と申します
 
実は以前に OKWaveに投稿した内容ですが、
回答無しで期限切れになってしまいました。

Ruby         2.0.0p353 (2013-11-22) [i386-mingw32]
__ENCODING__   Windows-31J
TkDND             2.6
上記の環境にて
TkDNDで受け取る,日本語ファイル名が文字化けしてしまいます。

例えば
txt = TkText.new(nil){
   dnd_bindtarget('text/uri-list','<Drop>','%D'){|d|
      p d
      insert('end',d[0])
      insert('end',"\n")
   }
}
txt.pack

として、
"c:/usr/dev/あ" という名前のファイルをドロップすると

["C:/usr/dev/\xC3\x83\xC2\xA3\xC3\x82\xC2\x81\xC3\x82\xC2\x82"]
もちろん、TkTextでも文字化けしてしまいます。

素のTcl/Tk で同じように行った場合は文字化けなく実行
出来るので、Ruby側エンコ-ディングの扱いで何とかなる問題かとは
思っていますが、nkfで '-W','-W16' 等試しても対応できず
そこから行き詰っています。

どなたか、変換方法 ご教授頂けないでしょうか。
宜しくお願いします。


In This Thread

Prev Next