パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

locale.alias」記事へのコメント

  • locale.alias (スコア:2, 興味深い)

    by numa (4467) on 2002年01月23日 18時11分 (#56629) ホームページ 日記

    そういう場合,次のような対策を取りましょう.

    • "日本語_日本.シフト符号化表現" というロケールをでっち上げ,「俺はこれを使っているから,登録してくれ」とか言ってごねる.もちろん,その文字列自体のエンコーディングは Shift_JIS で.

      これは当然,嫌がらせですが,ISO/IEC 8859-1 の名前が受け入れ可能で,Shift_JIS が受け入れ不可能だとは言えないはず.

    • 「POSIX では,ロケール名は Portable Character Set の文字でなければならない」と主張する.

      根拠は次の通り.

      1. ISO/IEC 9945-2 あるいは Single UNIX Specification の, localedef ユーティリティの部分を読むと,"Environment Variables" の節の,LC_CTYPE の項に,「localedef ユーティリティの入力データの解釈は POSIX ロケールで行う」旨の記述がある.たとえば,SUS v2 だと:
        This variable has no affect on the processing of localedef input data; the POSIX locale is used for this purpose, regardless of the value of this variable.
      2. 次に,同じ規格の localedef の入力ファイルの規定を読みましょう.

         
        • Character Set Description File の節で規定されている charmap ファイルには <code_set_name> という宣言があって,ここにコードセット名を記述します.たとえば次のように:
          <code_set_name> eucJP
        • Locale Definition の節で規定されているロケール定義ファイルの形式には copy というキーワードが規定されていて,LC_* のカテゴリごとに,他のロケールの定義を引用することができます.たとえば,次のように:
          LC_MONETARY
          copy fr_FR
          END LC_MONETARY
      3. さて,上記の文字列がすべて 「POSIX ロケールで解釈される」のですから,ロケール名が (「名前空間」として) 複数エンコーディングの混在ではありえないのはわかっていただけると思います. また,もし「ISO/IEC 8859-1 の名前だけは許す」という 話になれば, 今度は「POSIX ロケールでの文字の解釈は ISO/IEC 8859-1 でやるのか.本当にそれでいいのか.」という話にもっていけば, Unicoder どもが騒ぎ出すことになるでしょう.

    まあ,前半は冗談ですが,後半はけっこうマジです.

最初のバージョンは常に打ち捨てられる。

処理中...