作者: Bruce.
日時: 2006/9/15(14:52)
Bruce.です。

閑舎 writes:

> 昔のマルチバイト化された GAWK のような具合にはやはりいかないと。
> Bruce. さん、わたなべさん、WILLs さんが grep, sed, awk, perl のマルチバ
> イト化に取り組まれていた、あの頃はある意味シンプルでよき時代だったのです
> ね。なつかしがってばかりいては時代に取り残されますが……。

置かれた状況が違います。

マルチバイト文字対応といってもこれらは「日本語」だけを相手に考えていれば
良かったわけですが、現在は韓国語もあったり、中国語もあったり、その他
もろもろあります。まあ実はserowさんのjperlはeuc-krとかeuc-cnとかにも
使えたわけですが(オプション指定にあったはず)。

巨大な文字集合としてのUnicodeを中心におき、それに対応することで各種の
文字に対応するというのは一つの見識であるわけです。××という文字コード
→ Unicode への変換ルーチンさえ用意できれば、あとは統一して「文字列」
処理ができるわけですから。

仮にたとえばShiftJISなりEUC-JPなりの「バイト列」を個々に「文字列」として
扱うようにするためには、どのような規則でマルチバイト文字が成り立っている
のかというのを何らかの形で持たねばなりません。これはまあ変換テーブル
と同種なものと考えることができたとしても、
#MS-DOS/Windowsでは、システムでサポートしているマルチバイト文字の
#先頭文字の範囲を示すテーブルをシステムで抱えていて、システムコール/API
#で取り出すことができます
いわゆるJISコードのようなステート切り替えによる文字集合に対応するのは
一苦労です。

「日本語対応」で良しとし、きちんとした「多言語対応」を提唱することの
できなかったわたしたちの怠慢の結果といえるかもしれません。
#いや、Muleの例があるか。

なお、RubyではPerlやPythonのUnicode中心なアプローチとは異なる手法を
用いるとのことです。

いじょ。