[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:00636] Re: 仕切り直します。
- Subject: [FDclone-users:00636] Re: 仕切り直します。
- From: Takashi SHIRAI <shirai@unixusers.net>
- Date: Thu, 19 Oct 2006 01:11:30 +0900
しらいです。
In Message-Id <20061019002424.804060.933c9dff@isis.ocn.ne.jp>
yuji tamura <yuji@isis.ocn.ne.jp>さんwrites:
> こんばんは田村です。
> 添付のファイルを test1.txt として保存し、
>
> cat test1.txt とした時には
> [yuji:~] yuji% cat test1.txt
> がぎぐげご01234567890123456789
> 0123456789ざじずぜぞ0123456789
文字数が違うことには気づかれているようですが、濁点一個につ
き 2 カラムずつ背景の文字を喰い潰していった結果、元々 40 個
あった背景文字を 30 個にしてしまっているんですね。
一行目は、40 個の数字を連ねた後に ^M(0x0d) に続けて UTF-8
で「がぎぐげご」を置いています。^M はカーソル位置を行頭に戻
すので、背景にある数字の上に上書きすることになります。
二行目は、40 個の数字の後に ^[(0x1B)[30D というシーケンス
に続けて UTF-8 で「ざじずぜぞ」です。^[[30D はカーソル位置を
30 カラム左に移動するので、丁度 10 カラム目から上書きします。
Mac OS X は Normalization Forms という Unicode 3 の規格を
採用してしまったがために、濁点付仮名一文字は一般の仮名漢字二
文字分に相当する 6bytes の UTF-8 から成ります。
terminal の line buffer は一般の仮名漢字しか考慮していなか
ったために、この 6bytes を格納する余地が無いんでしょう。なの
で隣のカラムから 3bytes 分借りて来ざるを得なかったと。
一般の仮名漢字なら 6bytes 分で 4 カラム消費する筈ですが、
濁点付仮名は同じサイズで 2 カラムしか消費しないために、後続
の文字がその差の 2 カラム分だけ左に詰まって表示されてるんだ
と思います。
多分、濁点付仮名だけを表示しようとすると、本来の一行分の半
分のところで無理矢理改行されるか、もしくはそれ以降表示されな
いか、といったおかしな現象が起こるのではないでしょうか。
これでは到底 UTF-8 の扱える端末とは呼べませんね。日本語の
localization を担当した人は、Normalization Forms を採用した
本国の決定をさぞ怨んだことでしょうて :-)
> ときちんと表示されるようです、shell は tcsh を使っています。
> 異常を感じたのは、先日の確認用ディレクトリを作っている時
> 「touch がぎぐげご」とかした時に、fd 上で濁点部分が
> 「=」をもっと太くした文字「 のテキストエテ〓ィタ~.txt」
> のように表示され、rename する時にも濁点のついている文字部分が
> 「BS」キーで、訂正しようとすると、削除する時に文字数が
> あわないような気がしたためです。
Mac OS X の UTF-8 に対応している shell って存在しないと思
いますよ。行編集が必ず破綻する筈。FDclone でも端末 emulation
では Normalization Forms は無視してますから。
しらい たかし