68user's page 掲示板

Prev< No. 4528> Next  [最新発言に戻る] [過去ログ一覧]
No. 4528 # 68user 2006/02/21 (火) 02:26:55
>>4526 mkt
ずいぶんヌルい修正をしてしまい、お恥ずかしい限りです、

> - ヒットしなかったときのキーワードの表示が文字化けしている。(*1)
> (「!」「;」「¥」など多数)
正規表現で検索しているため、入力された文字列は quotemeta している
のですが、quotemeta すると EUC-JP の 0x80 以降も quote されてしまい、
その結果化けていました。これまでは quotemeta した後に
    s/\\([\x80-\xff])/$1/g;
で元に戻していたのですが、前回の修正時になぜか戻す必要はないと判断
して、上記の s/// を削除していました。

> - 関係ない結果が表示される。(*2)
> (「”」「’」「|」など)
全角->半角変換が甘くて、" ' | などはそもそも半角に置換していません。
調査していないので想像ですが、EUC-JP の 2バイト目 + 後続バイトに
マッチしてしまったのではないかと思います。

> <!-- の後から 先頭項目のあたり?)まで拾ってきてしまっている。
> (「!」「=」「:」「@(=@)」「*」など多数)
全文検索のテストが甘かったようです。

> あと、「+」を検索しようとすると「500 Internal Server Error」に
> なりますね。何も入力しなかった場合とかもですが。
空の場合は
    print "検索内容を指定してください。\n";
と表示するようにしていたのですが、前回の修正で Content-type ヘッダの
出力方法を変更したせいで、Content-type より前に
    検索内容を指定してください。
が出力され、エラーとなっているようです。

少しずつ直していきます。ご指摘ありがとうございました。

Prev< No. 4528> Next  [最新発言に戻る] [過去ログ一覧]