[PHP]日本語の文字列を綺麗に抜き出す
2008 年 11 月 5 日
コメントはありません
今回はPHPの文字列操作ではまったネタをメモ。
文字列から数文字抜き出す時に、2バイト文字(日本語)を1バイトで抜き出してしまうという問題。
結論から言うとmb_substrの前にmb_language,mb_internal_encodingを指定してあげると綺麗に抜き出せるらしい。
- //文字コード設定
- mb_language("Japanese");
- mb_internal_encoding("EUC");
- $str = "ほげほげhogehogeうほうほuhouho";
- //最初から10文字を切り抜く
- $str = mb_substr($str,"0","10");
- echo $str;</td>
出力結果は以下
- // 結果
- ほげほげhogeho
となる。
mb関連の関数は勝手にマルチバイトに対応してくれると思ったら、そうでもなかったというオチ。
設定ファイルとアプリケーションの内部エンコーディングが同じだったら追加する必要はないかも。

