• ベストアンサー

PHP,Perl の正規表現で”ー"を使うとエラーになってしまいます

PHPですと、ereg Perlですと、index等を使ってフォームから送られてきた文字を検索したいのですが、" ー "を使うと、PHPでは、エラーになり、Perlだと検索にかからなくなってしまいます。単語で例を挙げますと、"フォーム"などです。他の文字は平気みたいなんですけど、どういった原因が考えられるでしょうか。また、その対処法もできれば教えてください。ちなみにWindowsのメモ帳でやってます。

質問者が選んだベストアンサー

  • ベストアンサー
noname#45976
noname#45976
回答No.2

文字列をコンバートしてから使用すれば大丈夫かと思います。 jcode::convert(\$keyword, 'euc'); など、jcode.plを使って検索したいファイル(?)と同じ文字コードに変換してみてください。 $keyword - 検索文字列の入った変数 euc    - 文字コード(他sjisなど)

shunet
質問者

お礼

shift-jis ではなくて、eucで文字コードをそろえたら無事'ー'検索できました。 かなり初歩的な質問になってしまいました、、、ありがとうございました。助かりました。 文字コードってめんどうですね

shunet
質問者

補足

検索した文字はコンバートしていたんですけど、データファイルも今度コンバートしてみたんですけど &jcode'convert(*$line, "sjis");  このように どうしてもだめですね、'ー'だけだめなんですよね、パソコンがおかしいんでしょうか、、、すごいはまっちゃった感じです、、、

その他の回答 (1)

  • selenity
  • ベストアンサー率41% (324/772)
回答No.1

phpならi18n版のmbxxxx関数を使ってみましょう。 perlならjcode.plを使いましょう。

shunet
質問者

補足

ご回答ありがとうございます。 Perlではもちろんjcode.plを使ってますよ。でもだめなんですよ phpのi18n版のmbxxxx関数はちょっとわからないです、、、

関連するQ&A