新規記事投稿 フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: ある漢字を…
Date: 1996/07/17 02:54:58
Reference: mesh.program/00037

7月16日に、まじんさんは書きました。

>7月16日に、naokiさんは書きました。
>
>>もう一つ  「ー」  この伸ばす文字を混ぜるともっと変な動きをするんです。
>>突然文字化けしてわけが分からなくなるんです。
>
>こんにちわ、まじんです。
>その「ー」で落ちるのは、私のページの検索機能と同じです。
>原因は、UNIXメタキャラにあたるコードをその「ー(SJIS)」の2byte目が
>使用しているためらしいです。
>
「本」「府」「―」。これらがトラブルを起こしているのは、まじんさんの
おっしゃる様に、メタキャラクタ "\(0x5C)" のコードが漢字コードの中に
含まれているからですね。

つまり、JISコードでは「本(0x4B5C)」「府(0x495C)」、SJISコードでは
「―(0x815C)」です。
# 他にも色々あります。SJIS だと使用頻度の高い「表」「能」「ソ」「十」何かが
# トラブルのタネですね。

あと perl5 を使っていると "@(0x40)" を含む漢字も問題を起こす可能性があります。

>回避方法は、その「ー」を含めてSJISからEUCにコンバートしてから
>使えば良いと思います。
>
ええ、EUCコードは JISコードの最上位ビットが立ったものなので、メタキャラクタや
コントロールキャラクタなどで使われているコードを内包しないので扱いやすいと
言われています。実際、内部処理を EUC で行なっているスクリプトは多いです。

しかし、この「うぇぶ会議室」のスクリプトは内部処理を SJIS で行なっています。
それでも別に支障はないです(よね?)。つまり、適切にクォートを行なったり、
必要な所にエスケイプを行なったりすれば、SJIS でも十分使えると言うことです。
# スクリプトの中に "表\示" とか書いてあるところは、つまり "\" をエスケイプして
# あるわけです。

SJIS を採用しているのは、会議室管理者の大半を占めるであろうパソコンユーザが日常的に
使っている漢字コードである、と言うことと、いわゆる「半角かな」を使われてしまった
時にあまりひどいことが起こらないようにするためです。
# 「半角かな」は使えない様にしておく方がいいのですが、パソコン通信に慣れ親しんでいる
# 人たちにとっては、「半角かな」が使えないと言うのは、到底受け入れがたい制限と
# 感じることもある様なので。