PHPで文字コードを変換する

PHP文字コード変換 PHP

PHPで外部APIをアクセスし、レスポンスの文字コードがアクセス元環境と違う場合、文字化けとなるため、
文字コード変換が必要となります。

mb_convert_encoding関数

mb_convert_encoding関数で指定した文字コードへ変換できます。
使用方法:

string mb_convert_encoding (
    string $str,              // 変換する文字列
    string $to_encoding       // 変換後の文字エンコーディング
    [, mixed $from_encoding ] // 変換前の文字エンコーディング
    )

変換前の文字エンコーディング、from_encodingを指定しなかった場合には内部文字エンコーディングがそれとみなされるため、これは省略すべきではありません。また’auto’と指定した場合には、日本語環境では’ASCII,JIS,UTF-8,EUC-JP,SJIS’と指定したものとみなされます。

$to_encoding$from_encodingには、以下のようなエンコーディングを指定できます。

  • UTF-8
  • UTF-7
  • ASCII
  • EUC-JP (EUC-JP)
  • eucJP-win
  • SJIS (Shift JIS)
  • SJIS-win
  • JIS
  • ISO-2022-JP (JIS)

iconv関数

iconv関数で指定した文字コードへ変換できます。
使用方法:

string iconv (
    string $in_charset ,  // 入力文字セット (エンコーディング)
    string $out_charset , // 出力文字セット (エンコーディング)
    string $str           // 変換する文字列
    )

$out_charsetにキーワードを追加することで、指定の文字セットで変換できない場合の挙動を制御できます。

タイトルとURLをコピーしました