[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FDclone-users:00642] Re: 仕切り直します。



 しらいです。

In Message-Id <20061020232755.475203.6775ff3d@isis.ocn.ne.jp>
        yuji tamura <yuji@isis.ocn.ne.jp>さんwrites:
> こんばんは田村です。

> >>   Mac OS X の UTF-8 に対応している shell って存在しないと思
> >>  いますよ。行編集が必ず破綻する筈。FDclone でも端末 emulation
> >>  では Normalization Forms は無視してますから。
> 
> 試して見ましたが、そのようです、10.3.x だったか 10.4.x からだったか
> tcsh が utf8 日本語対応した旨の記載を見たので、無条件にそうなのだと
> 思っていました。

 普通に「UTF-8」と言った場合は Normalization Forms は考慮し
ていまい場合が殆んどだと思います。
 濁点仮名まで含んだフルセットの文字コードを扱う限り、Mac OS
X の扱う文字コードはいわゆる「UTF-8」とは別のコード体系だと
思った方がいいでしょう。
 実際、Normalization Forms をどうするかは自動認識出来るもの
ではないので、利用者が意図的に選択する必要があります。
 なので、FDclone や UTF-8 TeraTerm のように明示的に「Mac OS
X 用」という UTF-8 の選択肢がない限りは、そのアプリの扱って
いる UTF-8 は Mac OS X では使えないものと思って下さい。


> >  という訳で、次期 release では UTF8-mac でのキー入力や疑似
> > 端末出力に対応することにします。
> 
> 少なくとも fd 上では、日本語ファイル名編集がうまくいくようになる、
> と言う事でしょうか?

 今の仕様でも FDclone から Mac OS X の UTF-8 なファイル名は
普通に編集出来ると思いますよ。
 FDclone は内部コードに EUC-JP を使っているので、UTF-8 なフ
ァイル名も EUC-JP だと思って行編集します。それを端末やファイ
ル名に見せる時に UTF-8 なり HEX なりに変換しているだけです。
 今の仕様で出来ないのは、Normalization Forms 付の UTF-8 を
吐くような IME からの入力を FDclone に喰わせた時に、それを正
しく denormalization するという作業です。
 なので、内蔵 IME を使って入力すれば普通にファイル名を編集
可能だと思います。

 Mac OS X の実態を良く知らないのですが、Normalization Forms
付の UTF-8 を吐く IME が用意されているんでしょうか?
 端末のコマンドラインから「echo -n が|wc」とした場合、ちゃ
んと「0 1 6」って表示されますかね?もしそうなら、その IME が
吐いた「が」は Normalization されています。
 UTF-8 版 TeraTerm でも Mac OS X 用 UTF-8 は出力のみ対応で
入力には使えないので、検証出来る環境が手元にないんですよね。
 -PTYINKCODE=UTF8-mac にした FDclone から更に外部コマンドと
して FDclone を起動すると、内側の FDclone には UTF8-mac な文
字コードが入力されるので、一応その環境で動作確認しています。


> どうも文字コード関係は鬼門になっていると言うか、もっと勉強します。
> Normalization Forms と言ってもいろいろあるのですね。

 UNICODE consortium が挙げてるタイプには NFC とか NFD とか
があって、それぞれ明確なポリシーに則って正規化されているんで
すが、Mac OS X のそれは独自仕様なのでポリシーが不明確です。
 なので、何のために正規化しているのか今一つ定かではありませ
んね。単に新しもの好きだったのかも。だからわざわざ勉強してま
でつき合う筋合いはないと思いますよ。
 Apple は仕様を売ってるんじゃなくて実装を売ってる筈なので、
end user の視点からは「濁点仮名のファイル名が扱えないぞ」と
一言文句を言ってやれば十分でしょう。
 そういったクレームに技術的な裏付けを要求されるのは、むしろ
Apple 側のエンジニアなので、end user が勉強する必要はありま
せんよね。

                                               しらい たかし