kubotaの日記: locale.alias 2
Linux システムにおいて、locale.alias というファイルは、GNU libc にも含まれるし、X Window System にも含まれる。これらのファイルには、ASCII ではない文字が含まれている。fran0xe7ais と bokm0xe5l のふたつだ。
0xe7 と 0xe5 は、ISO-8859-1 であると解釈すると、ç と å と解釈され、意味のある単語となる。しかし、ロケールを決定する前にそれらの文字を ISO-8859-1 の意味で使うのは、誤った使いかただし、場合によっては使用できない。それに、こんなことをされたら locale.alias ファイルを編集できなくなるじゃないか。
というようなことを、i18n@xfree86 ML に流したのだが、ふだん Unicode! とか叫んでいる人々も含め、まったく反応がない。
ついでに、bug-glibc@gnu.org にも、今日、同様なメールを送ったが、Ulrich Drepper さんから、なおすつもりはない、というような返事がやってきた。この人、わけわからないことを言ってるんだが、どうしたもんだろう。/etc/locale.alias はテキストファイルだけどエンコーディングは特定されてなくて単なるバイトシーケンスなんだそうだ。それはふつうバイナリファイルだと思うんだが、そう指摘したら、「改行」で区切られているからテキストファイルだとさ。しょせん 8 ビットエンコーディングな人々の国際化に対する考え方はこの程度のものなのか、と思ってしまった。
実は前ふりがあって、このへんから始まる長~い議論があるのだが、これを受けて Debian パッケージに対してバグ報告したのだが、直すつもりないし、なんて冷たくあしらわれたということがあった。
locale.alias (スコア:2, 興味深い)
そういう場合,次のような対策を取りましょう.
"日本語_日本.シフト符号化表現" というロケールをでっち上げ,「俺はこれを使っているから,登録してくれ」とか言ってごねる.もちろん,その文字列自体のエンコーディングは Shift_JIS で.
これは当然,嫌がらせですが,ISO/IEC 8859-1 の名前が受け入れ可能で,Shift_JIS が受け入れ不可能だとは言えないはず.
「POSIX では,ロケール名は Portable Character Set の文字でなければならない」と主張する.
根拠は次の通り.
次に,同じ規格の localedef の入力ファイルの規定を読みましょう.
まあ,前半は冗談ですが,後半はけっこうマジです.
Re:locale.alias (スコア:1)