[ruby-list:45824] unicodeのファイル名の処理

From: izumi_ruby@...
Date: 2009-01-28 15:06:29 UTC
List: ruby-list #45824
はじめまして,和泉と言います。

ruby 1.9.1-rc2で,いろいろと試しています。

Windowsで,unicode混じりのファイル名がある場合,unicodeの部分が
'?'に変換されてします。


「ruby-list:44877」に仕様について書いているようなのですが,
結局,どのような書き方をすれば,処理できるのでしょうか?

例:
{ハート}{スペード}{ダイヤ}{クラブ}.txt
= "\u{2660}\u{2661}\u{2662}\u{2663}.txt" というファイル名を作成して,
以下を実行。(

D:\Temp\ruby>ruby -v -e "Dir.entries('.', :encoding=>'utf-8').map {|n| p n.unpack('C*')}"
ruby 1.9.1p0 (2009-01-20 revision 21700) [i386-mswin32]
[46]
[46, 46]
[63, 63, 63, 63, 46, 116, 120, 116]  -> "????.txt"のコード

最後が,
[226, 153, 160, 226, 153, 161, 226, 153, 162, 226, 153, 163, 46, 116, 120, 116] 
を期待しています]

どうやっても,"????.txt"で返ってくるので,そのファイルにアクセスできません。
rubyの-Eオプションを試したり,encodeの指定を変えたりしたのですが,
"????.txt"でしか,返ってきません。

どう書けばよろしいのでしょうか?

# Windowsの文字コードには泣かされます。

では。
---
Hiroaki Izumi

In This Thread

Prev Next