PHPの機種依存文字の文字化けまとめ

以下の様な文字コード変換のサンプルをよく見かけます。
UTF-8から、sjisへ。
携帯サイトなどを作る場合は、SJISへの変換はいまだによく行われます。

<?php
$test = 'あいうえお';
var_dump(mb_convert_encoding($test, 'sjis', 'utf-8'));
?>

string(10) "あいうえお"

まぁ、これはこれで良いのですが・・・

このコードは、以下のような場合文字化けを起こします。

<?php
$test = '①②③㍻';
var_dump(mb_convert_encoding($test, 'sjis', 'utf-8'));
?>

string(4) "????"



機種依存文字が入った場合は、このように変換に失敗します。

このような場合は、下記のようなコードに書き換えることで回避可能です。

<?php
$test = '①②③㍻';
var_dump(mb_convert_encoding($test, 'sjis-win', 'utf-8'));
?>

string(8) "①②③㍻"



また、EUC-JPへ変換したい場合は、eucjp-winとなります。