【PHP入門2021】文字列の文字コードを変換する関数mb_convert_encodingの使い方 ~文字化け対策に

PHP

mb_convert_encoding関数の基本構文

mb_convert_encodingは文字エンコーディングを指定し、指定の文字列の文字コードの変換をします。

例) UTF-8→SJIS

mb_convert_encoding ( array|string $string , string $to_encoding , array|string|null $from_encoding = null )

パラメータ

名前 初期値 説明
array|string $string 変換する文字列
string $to_encoding 変換後の文字コード
array|string|null $from_encoding null 変換前の文字コード
※カンマ区切りで複数にすることで優先順に読み込み
例) SJIS, SJIS-win, ISO-2022-JP, JIS, UTF-8, EUC-JP

返り値(戻り値)

説明
bool 変換の成功/失敗のboolean型

mb_convert_encoding関数の使い方

文字列の文字コードを文字エンコーディングを指定して変換するサンプルソースコード

$str_utf8 = "あいうえお"; //UTF-8のあいうえお
$str_sjis = mb_convert_encoding($str_utf8, "SJIS", "UTF-8"); //UTF-8→SJISに変換

ファイルの文字エンコーディングを指定して文字化けを防ぐサンプルソースコード

//UTF-8のPHP環境にて

$str_sjis = file_get_contents("japanese.txt"); //SJISで書かれたファイルから読み込み
echo $str_sjis . PHP_EOL; //このまま出力すると文字化けしてしまう

$str_utf8 = mb_convert_encoding($str_sjis, "UTF-8", "SJIS"); //読み込んだ文字列をSJIS→UTF-8に変換

echo $str_utf8 . PHP_EOL; //正常に出力できる

配列の文字コードを変換するサンプルソースコード

$array_utf8 = array("あいうえお", "かきくけこ", "さしすせそ"); //UTF-8の配列
$array_sjis = mb_convert_encoding($array_utf8, "SJIS", "UTF-8"); //配列の中身をUTF-8→SJISに変換

関連する関数

mb_internal_encoding

コメント

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