[ruby-list:49574] Re: Mac OS X: Dir.glob の韓国語の扱いについて

From: Eito Katagiri <eitoball@...>
Date: 2013-09-01 22:20:34 UTC
List: ruby-list #49574
かたぎり と申します。


興味があって調べてみました。おそらく、このページ(http://www.artonx.org/diary/20110205.html)
に記載されていることと同じような問題かと思います。

あと、Unicode(http://rubygems.org/gems/unicode)というgemがあり、Unicode文字の合成や分解
ができるようです。


2013/8/30 Watson <watson1978@gmail.com>:
> Watson と申します。
>
> 以下のようなコードで、Mac OS X 上で Dir.glob を用いてファイルシステムから韓国語のファイルを取得した際に
> String#encode と Iconv.conv の返す文字列が異なるようです。
> Ruby 2.0 で iconv ライブラリが標準で添付されなくなったため String#encode で処理したいのですが、
> どのように対処すれば良いのか分かりませんでした。
> String#encode では処理できない等、何かしらご存じの方が居りましたら、ご教示いただけまでんでしょうか。
>
> ------------------------------------------------
>
> file = '안녕하세요'
> system "touch #{file}"
>
> files = Dir.glob('*')
> files.delete($0)
>
> require 'iconv'
> files.each do |path|
>   p file == path.encode('UTF-8', 'UTF8-MAC')
>   p file == Iconv.conv('UTF-8', 'UTF8-MAC', path)
> end
>
> ------------------------------------------------
>
> 実行結果
> % ls
> test.rb
>
> % ruby test.rb
> false
> true
>
> (ソースコードは https://gist.github.com/Watson1978/6389629 にも乗せておきました)
>
> 以上、よろしくお願いいたします。
>
> --
> Watson
>

In This Thread

Prev Next