php に存在する、以下の両関数は、いずれも文字コードを変更するもの。
- mb_convert_variables
- mb_convert_encoding
違いは、
- 引数の指定順
- 扱える型(文字列かオブジェクト(配列含む))
がある。
mb_convert_encoding
mb_convert_encoding—ある文字エンコーディングの文字列を、別の文字エンコーディングに変換する
こっちは文字列が対象ですな。
ちな、PHP7.2からは配列も対象らしい。↓
PHP7.2から
mb_convert_encoding()
で配列がサポートされていました。
基本構文
mb_convert_encoding(変換する string または array, 変換後文字エンコーディング , 変換前文字エンコーディング):
3つ目の引数は、指定しなかった場合、
- mbstring.internal_encoding setting が使われる。これも設定されていなかった場合、
- default_charset setting が使われる。
戻り値
以下いずれか。
- string
- array
- false (失敗時)
mb_convert_variables
mb_convert_variables — 変数の文字コードを変換する
こっちはオブジェクトとか配列が対象ですな。(文字列もいけるけども)
こちらのQiita記事にサンプルコードを載せてくださっている。
基本構文
mb_convert_variables(変換後エンコーディング, 変換前エンコーディング, 変換対象の変数)
4つ目以降に変数を指定した場合、変換対象を追加できる。
戻り値
成功時に変換前の文字エンコーディングを返し、失敗した場合に
false
を返します。
その他参考にしたサイト
■mb_convert_encoding
こっちのがよく使う。
mb_convert_encoding($str, ‘変更後の文字コード‘, ‘変更前の文字コード‘);
文字列のみしか使えないとのこと。■mb_convert_variables
使ったこと無い。
mb_convert_variables(‘変更後の文字コード‘, ‘変更前の文字コード‘, $str);
配列やオブジェクトにも使用できるとのこと。
引数の指定順が違うのがポイントですな。
アザシタ。
コメント