Filesystem encoding of UNIX

Issue #2154 has been updated by naruse (Yui NARUSE).

usa (Usaku NAKAMURA) wrote:

す。
みなさんどうしてるんでしょう?

ただ、よくわかんないんですが、最近はSDカードとかFATつっても
FAT32じゃないんすかね。
であればUnicodeなファイルエントリもあるはずなのでファイルシス
テムドライバが真面目に作ってあればUTF-8でファイル名アクセスが
できて問題ないようにも思います。
この辺はそういうシステムを使ってる人に聞きたいところ。

現状では default_external を SJIS にしてファイル開くときに external encoding を EUC-JP
に設定とかですかねぇ。

  1. ロケールは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 T.)
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

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs