アーカイブ

‘文字列’ タグのついている投稿

[PHP]日本語の文字列を綺麗に抜き出す

2008 年 11 月 5 日 コメントはありません

今回はPHPの文字列操作ではまったネタをメモ。

文字列から数文字抜き出す時に、2バイト文字(日本語)を1バイトで抜き出してしまうという問題。

結論から言うとmb_substrの前にmb_language,mb_internal_encodingを指定してあげると綺麗に抜き出せるらしい。

  1.  //文字コード設定
  2.  mb_language("Japanese");
  3.  
  4.  mb_internal_encoding("EUC");
  5.  $str = "ほげほげhogehogeうほうほuhouho";
  6.  
  7.  //最初から10文字を切り抜く
  8.  $str = mb_substr($str,"0","10");
  9.  echo $str;</td>

出力結果は以下

  1.  // 結果
  2.  ほげほげhogeho

となる。

mb関連の関数は勝手にマルチバイトに対応してくれると思ったら、そうでもなかったというオチ。

設定ファイルとアプリケーションの内部エンコーディングが同じだったら追加する必要はないかも。

カテゴリー: php タグ: ,
Get Adobe Flash player