From: Yukihiro Matsumoto Date: 2008-06-06T16:05:08+09:00 Subject: [ruby-dev:34967] Re: open() and encodings まつもと ゆきひろです In message "Re: [ruby-dev:34964] Re: open() and encodings" on Fri, 6 Jun 2008 14:10:25 +0900, "U.Nakamura" writes: |> = Dir (ファイルシステムからの読み込み) |> |> Windows: UTF-16LE → UTF-8に変換(タグ付け) |> OS X: UTF8-MAC → UTF-8(or UTF8-MAC)タグ付け) |> UNIX系: NULを含まない文字列 → localeにしたがいタグ付け |> |> = Open (ファイルシステムへの指定) |> |> Windows: UTF-16LEに変換 |> 変換と言っても、7BITまたはUnicodeでなければエラー |> UTF-8を機械的にUTF-16に変換する程度 |> OS X: UTF-8チェック |> UNIX系: バイト表現をそのまま使う(エンコーディングは無視) |> asciicompat(or NULを含まないかどうか)チェックは必要か |> |> くらいが適当ではないかと思います。どうでしょう? | |Windowsの場合、既存のスクリプトはファイルシステムに渡す/から |貰うファイル名はシステムコードページ(言い換えると日本語版なら |SJIS)であると仮定して書かれています。 |よって互換性の見地からWindowsに関しては上記案には反対です。特 |にopenの方。 うーむ、そうするとWindowsにおける「Unicodeでなければエラー」 を「UTF-16LEに変換」にすればどうでしょうか。