- 405 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 21:29:42 ]
- シフトJIS が生まれる前のパソコンって、どんな漢字コード使ってたか知ってるよね?
そう、JIS漢字コード(JIS6226)だね。ちょっと常識すぎたかな。 UNIX も、マイクロソフトのBASICを乗っけたパソコンも、漢字はJIS漢字コードを使ってたんだよ。 ところが、これが非常に使いにくい。ASCII の1バイト文字とJIS漢字を共存させるのが、えらい苦労する。 そこで、ゲイツ一味が考え出したのが、シフトJISってワケ。 これは、JIS漢字コードに無理やり数値を足したり引いたり掛け算したり・・・ で、ASCIIコードと重ならないように工夫したコードなんだね。 UTF-8 ってのは、このシフトJIS のユニコード版と言えるかな。 笑われるのを覚悟で言って見れば、「UTF-8 とは、シフト・ユニコードである」 ってところだろうか。 (・・・あ、こんな言葉は無いから外では使うなよ。たった今オレが思いついた言葉だからね) ユニコードと1バイトASCIIコードは共存できない。そこを、無理やり、数値を足したり引いたり掛け算したり・・・ で、ASCIIコードと重ならないように工夫したわけさ。ほら、シフトJISと状況が似てるだろ? ということで、UTF-8 はシフトJISと同じ問題をはらんでいる。 つまり、コンピュータの文字の内部表現には向かない、って事。 たとえば、頭から10万文字めを取り出す、という処理を考えると、先頭の1バイトめから順々に数えなければ 10万文字目が特定できない。次の10万1文字めを取り出すには、またまた先頭の1バイトめから順々に数えなければ 文字が特定できないって事なのよ。大量の文字列を扱うのにはスピード的に不利なわけ。 ユニコードで内部処理していれば、こんな事にはならない。単なる文字の配列だから10万文字めだろうが10万1文字め だろうが、素早くランダムアクセスできるからね。 いつまでも内部表現にUTF-8を使い続けるのは、問題を先延ばしにしているだけで、未来は破綻が待っている。
|

|