質問: 4バイト文字の判定に以下のコードを書きました。 下記のコードだとうまく判定されなかったのですが、 パターン修飾子の「u」(PCRE_UTF8)をはずすとうまく作動しました。 UTF-8扱っていればとりあえず「u」付与すればいいのかなという認識で付けていたのですが、今回のような文字コードの判定の時は違うようです。 どういうときに「u」をつけるべきなのでしょうか? ``` // パターン修飾子「u」あり // うまく判定されない if (preg_match('/[\xF0-\xF7][\x80-\xBF][\x80-\xBF][\x80-\xBF]/u', $value)) { return false; } else { return true; } // パターン修飾子「u」なし // うまく判定された if (preg_match('/[\xF0-\xF7][\x80-\xBF][\x80-\xBF][\x80-\xBF]/', $value)) { return false; } else { return true; } ```
回答: ある関数やメソッドなどの動作仕様を知りたい場合、まずはリファレンスを読みましょう。 たいていの場合、このような事を人に聞いて得られる情報は リファレンスに書かれているものより少く、不確実ですので。 それでもよく分からなければ、簡単なテストプログラムを書いて、実際に動かしてみることをお勧めします。