SJISからUTF-8への文字コード変換にはsjis-winを指定する(PHP)

Webサイトの作成でやっかいなのがS-JIS(シフトJIS)の取り扱いです。以前はPCの文字コードがS-JISだったり、ケータイサイトはS-JISしか使えなかったりしていましたが、現在ではUTF-8等を使うことが多いと思います。

PHPで文字コードの変換にはmb_convert_encodingを使いますが、このとき、以下のようにすると一部の文字で文字化けが生じます。

mb_convert_encoding($str, 'utf8', 'sjis');

どうやら、拡張文字の扱いで文字化けが生じるようです。以下のようにすると、解決します。

mb_convert_encoding($str 'utf8', 'sjis-win');

具体的に影響のある文字として、「髙」「黑」「①」「Ⅰ」などがあります。