PHP:全角スペースを半角スペースに変換:mb_ereg_replace
PHP (55 items)
2005年03月24日
PHPに限らず、プログラムにおいて日本語は厄介の種となる。
文字コードの環境が統一された世界なら比較的簡単かも知れないが、
WEBの世界においては、異なる文字コードを扱う場面が必ず出てくるであろう。
今回は、全角スペースを半角スペースに変換するという点に絞って、
その方法について書いてみた。
ただ、これも動作環境によっては異なることもあり得るので、
参考程度に見てもらいたい。。
まず、全角から半角に変換するという処理においては、
まんまの名前な関数、”mb_convert_kana”が考えられる。
>mb_convert_kana
文字コードの環境が統一された世界なら比較的簡単かも知れないが、
WEBの世界においては、異なる文字コードを扱う場面が必ず出てくるであろう。
今回は、全角スペースを半角スペースに変換するという点に絞って、
その方法について書いてみた。
ただ、これも動作環境によっては異なることもあり得るので、
参考程度に見てもらいたい。。
まず、全角から半角に変換するという処理においては、
まんまの名前な関数、”mb_convert_kana”が考えられる。
>mb_convert_kana
このPHPマニュアルから判断すると、下記のコーディングで実現可能となる。
しかし当サイトで実験したところ、
上記では完全に全角スペース変換が行われず、文字化けも発生した。
で、この方法ではなく、”mb_ereg_replace”を使用する事にした。
>mb_ereg_replace
更にこの関数を使用する直前に、
”mb_convert_encoding”で文字コード変換を行う。
>mb_convert_encoding
これで、ほぼ正常に変換される事になった。
(しかし完璧ではなく、一部文字化け発生)
とにかく、PHPで日本語を扱う際には、
まず、”EUC-JP”・”UTF-8”といった文字コードを統一する事が第一である。
PHPファイル自体、またPHPから参照するDBや各ファイルの文字コードも、
統一して動作させたいところである。
また、統一できない場合は、”mb_convert_encoding”等の関数を用いて、
常に文字コードを意識したコーディングを心がける。
(この処理の時点で、この変数値の文字コードは”EUC-JP”、というような感じで)
$str = mb_convert_kana($str, "s", "EUC-JP");
しかし当サイトで実験したところ、
上記では完全に全角スペース変換が行われず、文字化けも発生した。
で、この方法ではなく、”mb_ereg_replace”を使用する事にした。
>mb_ereg_replace
更にこの関数を使用する直前に、
”mb_convert_encoding”で文字コード変換を行う。
>mb_convert_encoding
$str = mb_convert_encoding($str, 'EUC-JP', 'auto');
$str = mb_ereg_replace(" ", " ", $str);
これで、ほぼ正常に変換される事になった。
(しかし完璧ではなく、一部文字化け発生)
とにかく、PHPで日本語を扱う際には、
まず、”EUC-JP”・”UTF-8”といった文字コードを統一する事が第一である。
PHPファイル自体、またPHPから参照するDBや各ファイルの文字コードも、
統一して動作させたいところである。
また、統一できない場合は、”mb_convert_encoding”等の関数を用いて、
常に文字コードを意識したコーディングを心がける。
(この処理の時点で、この変数値の文字コードは”EUC-JP”、というような感じで)
前の記事 次の記事