CGI で ー の文字を含む文字を検索するには?

[上に] [前に] [次に]
size [E-Mail] [HomePage] 1999/03/11(木) 19:08:27
はじめまして、sizeと申します。
自分の作っているCGIで ー を含む文字を入れて検索すると、
エラーが出てうまいこといきません。
ー を含まない文字なら、うまいこと検索が出来るのですが
どうしたらいいのでしょうか?
よろしくお願いします。

mo [E-Mail] 1999/03/11(木) 22:10:31
恐らく、「ー」が sjis であるため、
/ー/

/\201]/
と解釈されているのでしょう。開き括弧のない 「]」が出現しているのが
原因であると考えられます。
「ー」でエラーとなるなら「(」のような不釣合の括弧を入力してもエラー
になるのかな?
\Q, \E 使って特殊記号をエスケープするか、あるいは EUC
に変換して比較するか。
なお、日本語で検索を行なう場合、2 バイト文字の境界を
ちゃんと識別しなければ、存在しない文字にマッチしてしまいます。
たとえば、EUC コードで、

$word = 'い';
$text = '阿あ';
if($text =~ /$word/) { print "True\n"; }

というパターンなど。

size [E-Mail] [HomePage] 1999/03/12(金) 01:00:28
[[解決]]
\Q-\E の方法で解決しました。
ありがとうございました。
こんなにあっさり解決するなんて、
うれしくもあり、悲しくもありますね。
ありがとうございました。

[上に] [前に] [次に]