【PHP】preg_splitの文字化けを回避する

      2016/05/23

【PHP】preg_splitの文字化けを回避する

カンマや読点で文字列を分割するときに、preg_splitを使っています。正規表現で一致した部分で文字列を分割してくれる便利な関数です。この関数ですが、文字化けをすることがあります。

 

■文字化けする記述

下記のような記述だと、文字化けします。

$splitList = preg_split("/[\s,、]+/", "ほげほへおげほげほげほ ほげほほげ ほげ");

 

■文字化けしない記述

以下の様な記述だと文字化けしません。違いはパターンのところの最後にuが入っているか、入っていないかだけです。

$splitList = preg_split("/[\s,、]+/u", "ほげほへおげほげほげほ ほげほほげ ほげ");

 

調べてみると、preg_XXXX系の関数はUTF-8で処理したいときは【/パターン/u】のように/uをつけないといけないみたいです。文字化けは、ホント厄介ですね。

megane

megane

最近、個人事業主から法人へと進化しました。 エンジニア歴13年位です。PHPとかMysqlを使ってWebシステムを構築します。 Javaも書きます。 CakePHPも使います。 サーバのチューニングもごりごりやります。 あと、お肉と自動車が好きです。Twitterとか申請どうぞ。

 - PHP ,