Bruce.さん < こん??は でび です
すんません。書き物していました。で、まだ終わらない。
締切過ぎちゃったので、一週間くらい遅れてもいいや、
って気分になりました。
On Sun, 07 Aug 2005 23:35:36 +0900
"Bruce." <kbk@...> wrote:
> ただUnicodeのブロックってたくさんあるじゃないですか、
> タミル語とか、それらすべてを網羅するの?
> という疑問です。はい。
弱気になって来ました。
SJIS、EUCモードの救済的な意味では原状でほとんど
いいのかな、という気も。
UTF8モード規準で考えると、例えば東京外大AA研
(sortfのmtoyoさんがいるところね)なんかだと、
すげーマイナーな言語を扱っていたりするし、
中高の英語のセンセだと発音記号(この辺のコード
ポイントって合成用文字があったような気も…)とか
使いたいだろうし。
UTF8モードではコードポイント範囲で指定すればいい話
なのかな?
Perlだとどんな風に実装されているんでしょうか。
------------------------------------
> > このような、非ASCII文字をASCIIで表現する方法がいくつか
> > ありますが、こういうのをデコードする(って言い方で良いの
> > かな?)\xに類似の機能も欲しい気がしています。
>
> gawkなら関数という形で追加できそうな気がしますが、sedでと
> なるといい表現方法ありますか?
なんか適当なプレフィクス表現がないかなぁと
ボンヤリ考えていたのですがなかなか思い浮かびません。
新出さんのUNIX-like tools所収のTRだと
>「\」に続き1〜3桁の8進数
>その数をASCIIコードに持つ文字
とか、
>「\x」に続き1〜2桁の16進数
>その数をASCIIコードに持つ文字。UNIXにはこの記法はない。
>後述の -jオプションを指定している場合は16進4桁まで指定
>できるが、それが漢字コードとして正当な範囲内になければ
>ならない。
とかあります。
「検」の字をHTMLタグで表記した場合、10進表記が「検」、
16進表記が「検」です。
つうことで、「\U」に続き4〜5桁の10進数、「\Ux」に続き4〜5桁
(サロゲート領域の記述には5桁必要)の16進数とかかな。
エンコード、デコードの指定はどうしましょ。
A デコード
s/\U26908/\UDEC/g → 検
s/\Ux691C/\UDEC/g → 検
B エンコード
s/検/\UENC/g → 26908
s/検/\UxENC/g → 691C
C エンコードその2
s/./\U4ENC/g → すべての文字を10進数4桁にエンコード
s/./\U5ENC/g → すべての文字を10進数5桁にエンコード
s/./\Ux4ENC/g → すべての文字を16進数4桁にエンコード
s/./\Ux5ENC/g → すべての文字を16進数5桁にエンコード
D デコードその2(?)
s/\U4/\UDEC/g → すべての数値を左から4桁分ずつ切って
10進数と見なしてUnicode文字に変換
4桁に満たない残余はそのまま保持。
s/\U5/\UDEC/g → すべての数値を左から5桁分ずつ切って
10進数と見なしてUnicode文字に変換
5桁に満たない残余はそのまま保持。
s/\Ux4/\UDEC/g → すべての数値を左から4桁分ずつ切って
16進数と見なしてUnicode文字に変換
4桁に満たない残余はそのまま保持。
s/\Ux5/\UDEC/g → すべての数値を左から5桁分ずつ切って
16進数と見なしてUnicode文字に変換
5桁に満たない残余はそのまま保持。
Dがなんか汚いし、遅そう。
もう少しエレガントな表記法って、ありそうでしょうか。
ソースの前後にかならず開始文字「&#」や「&#x」と、
終了文字「;」などを指定しないと動作しないようにするとか?
でも、その場合、開始文字や終了文字はユーザ指定できるように
なっていて欲しい気もします。
でび http://homepage1.nifty.com/davi/