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

From: "NARUSE, Yui" <naruse@...>
Date: 2009-01-28 16:24:51 UTC
List: ruby-list #45826
成瀬です。

izumi_ruby@aritia.org wrote:
> ruby 1.9.1-rc2で,いろいろと試しています。
> 
> Windowsで,unicode混じりのファイル名がある場合,unicodeの部分が
> '?'に変換されてします。
> 
> 
> 「ruby-list:44877」に仕様について書いているようなのですが,
> 結局,どのような書き方をすれば,処理できるのでしょうか?

まず、結論から申しますと、1.9.1 では無理です。
日本語 Windows における Ruby 1.9.1 の場合、
ファイルシステムから取ってくるときに Windows-31J で取ってきて、
その後に UTF-8 に変換しているため、とってきた時点で、
Windows-31J で表せない文字は化けています。

ご指摘の「ruby-list:44877」あたりで議論はしたんですが仕様の合意が
Windows については取りきれず、また 実装側でも予想以上に手間がかかる
ことが後に発覚して、1.9.1 での実装は断念されました。


なお、仕様の大筋での合意が取れたのと、実装もある程度制限を設ける
(UTF-16LE とかだと無理とか) ことで目処が立ちそうなので、
1.9.2 では化けないようになるかもしれません。

-- 
NARUSE, Yui  <naruse@airemix.jp>

In This Thread