From: "naruse (Yui NARUSE)" Date: 2012-11-09T19:00:26+09:00 Subject: [ruby-dev:46463] [ruby-trunk - Bug #2154] filesystem encoding of UNIX Issue #2154 has been updated by naruse (Yui NARUSE). usa (Usaku NAKAMURA) wrote: > In message "[ruby-dev:46375] Re: [ruby-trunk - Bug #2154][Assigned] filesystem encoding of UNIX" > on Nov.03,2012 04:56:59, wrote: > > 1) > > ロケールは UTF-8 > > ファイルシステムはFAT(よってファイルシステムのファイル名はShiftJIS or another country specific codepage) > > ファイルの中身は EUC > > > > ※これはSDカードなどで実際に発生しうる > > これ、私も気になってるんですが、苦情を見かけないのが不思議で > す。 > みなさんどうしてるんでしょう? > > ただ、よくわかんないんですが、最近はSDカードとかFATつっても > FAT32じゃないんすかね。 > であればUnicodeなファイルエントリもあるはずなのでファイルシス > テムドライバが真面目に作ってあればUTF-8でファイル名アクセスが > できて問題ないようにも思います。 > この辺はそういうシステムを使ってる人に聞きたいところ。 現状では default_external を SJIS にしてファイル開くときに external encoding を EUC-JP に設定とかですかねぇ。 > > 2) ロケールはUTF-8だけどファイルシステムエンコーディングはUTF8MACな某OS > > > > というパターンだと思うので、これをケアする必要があるならAPIが必要そうに思えます。要望を上がってこない所をみるとあんまり困ってないのかな > > 困ってる話は卜部さんも紹介されたようにけっこうな頻度で見かけ > るように思います。 > ここは成瀬さんが深く考えていたはずなので説明お願いします。 filesystem encoding を UTF8-MAC にすると、non ASCII が入った瞬間 UTF-8 の文字列と比較できなくなって困り、 UTF-8 にすると UTF-8 なのに decomposed なので困るという八歩ふさがりな状態であるという、 当たり前の知見が得られました。 ---------------------------------------- Bug #2154: filesystem encoding of UNIX https://bugs.ruby-lang.org/issues/2154#change-32703 Author: usa (Usaku NAKAMURA) Status: Assigned Priority: Normal Assignee: akr (Akira Tanaka) Category: M17N Target version: 2.0.0 ruby -v: ruby 2.0.0dev (2012-10-25 trunk 37328) =begin 「Ruby M17N の設計と実装」によると(*1)、UNIXにおけるfilesystem encodingはlocaleであると書かれているのですが、実際には現在の 実装はdefault externalになっています。 実装の方が間違ってる気がするのですが、どうでしょうか? *1 http://jp.rubyist.net/magazine/?0025-Ruby19_m17n#l23 =end -- http://bugs.ruby-lang.org/