PHP 日本語文字数の注意点

mb_strLen()やmb_convert_case()関数で日本語の文字数を数える場合には、次のいずれかの方法で文字コードを設定する必要あり。日本語はマルチバイトであるため、文字コードを指定しないと変な値となることがある。

①方法その1

mb_strLen(文字列, ‘文字コード’)や、mb_convert_case(文字列,変換モード,’文字コード’)など文字列を扱う関数では、扱う文字列の文字コードを明確に指定する。(例えば:文字列がシフトJISならばSJIS)

指定しないと採用している内部文字エンコーディングが適用される。

②方法その2

次の関数でデフォルトの内部文字エンコーディングで変更する。

mb_internal_encoding(“文字コード”);