From: TAKAHASHI Masayoshi Date: 2000-10-31T20:23:28+09:00 Subject: [ruby-dev:11346] Re: Ruby I18N 某2ちゃんねるで自分の名前を見つけてびびった高橋征義です。 # しかもXP-jp ML を経由して2ちゃんに行くとは(汗;;; それにしても文字コードは難しいです。 Yasushi Shoji さん: > > えーと、まず、まつもとさんの[ruby-dev:11306]での「エンコーディング」 > > はCESとは微妙に異なりますよね。ふつうCESというとEUC-JPだとか > > ISO-2022-JPだとか、そういう層の話になりますが、その層とは明らか > > に異なる層の話なので。 > > どういう層か説明してもらえないでしょうか(^^;; UTR#17で言うところの code unit(?)というか、ある長さ(たとえば8bit)の ユニットをいくつ、どのように並べて「1文字」を表現するか、という層 (のつもり)です。 固定長(16bitとか31bitとか)か可変長(UTF-8の1byte〜6byteにする方式 とか)か、というのもこの層で表現することになることを想定してます。 > 自分で読んだ時は [ruby-dev:11306]での「エンコーディング」は UTR#17の > Character Mapまたは RFC2130の CESかと思ったのですが‥。 読み返してみると、[ruby-dev:11306]では「エンコーディング」という 言葉が複数の意味で使っているようです。例えば、 >> * 多くのエンコーディング(および文字集合)を扱いたい といった場合の「エンコーディング」はShift_JISやEUC-JPのこと (だと思うの)ですが、 >> (1) 文字集合はそのまま、エンコーディングは揃える といった場合の「エンコーディング」は、Shift_JISやEUC-JPの それではないでしょう(揃えたら上と矛盾するし)。私は後者の方を 想定してましたです。 > > なんとなくUnicodeのUTR17「Character Encoding Model」で提示されて > > いるモデル的には「CEF(Character Encoding Form)」に近いような気が > > しますです(自信なし)。 > > でも CEFだと Shift-JISやら EUCが‥ 確かにそうなんですよねえ。CEFはCCSの合成を考えてない(それは CESで行われることになっている)ので、JIS X 0201とJIS X 0208を 足して一つの文字集合とするようなShift-JISなどでは話がおかしく なりますし。むう。 ぴったり当てはまる言葉でないのは確かなのですが、あえて 言うならCEF的じゃないかなあ、と。 逆に言うと、RFC 2130のシンプルな3層モデル(CCS/CES/TES)では、 「文字集合はそのまま、エンコーディングは揃える」というまつもと さんの狙いをうまく説明できないので、無理にでも新しい言葉を発明 するか、別の言葉によそから拾ってきて、新しい意味をつけ加えるか しないといけないんじゃないか、というのが私の考えなのでした。 # UTR#17は5層モデルで、「抽象的な文字」を表す層と、CEFが # 追加されたものです。 > > http://www.unicode.org/unicode/reports/tr17/ > > 「Rubyの i18nの議論をする時は UTR#17の modelで定義されている単語を使う」 > とか決ってると無駄が無さそうですね。 この辺りのモデルの作り方は、上で触れたようにIETFとUnicodeコンソーシア ムとで異なっていたりするので、用語についても微妙なところで齟齬があり そうで不安です。それにUTR#17はUnicodeべったりなので、上の例のように、 それ以外の文字コード系については今いちぐっとくる言葉づかいにはなって なかったするところがなんとも。 高橋征義 (TAKAHASHI Masayoshi) Email:maki@inac.co.jp