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

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

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

 

■文字化けする記述

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

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

 

■文字化けしない記述

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

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

 

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

コメント