Shift-JISの機種依存文字をEUC-JPに変換で問題 - [k]id東京都世田谷区 ホームページ制作 [k]id

Shift-JISの機種依存文字をEUC-JPに変換で問題

Category PHP Update 2009.11.25

twitterfacebookgoogle+はてなブックマークPocketであとで読むfeedlyで購読

今日は凄く細かい事で苦戦したので、覚え書きです。

windowsのExcelで書き出したCSVをWEB用に加工してたのですが、
どうも、機種依存文字#9312;(①)とか#x2160;(Ⅰ)とかがどうしても文字化ける。。

ということで
通常そういう場合には、

$hoge =  mb_convert_encoding($hoge , "EUC-JP", "SJIS");
$hoge =str_replace("Ⅰ","Ⅰ",$hoge);

とかになるとおもうのですが、これだと何故か機種依存文字が無視されています。

ので

//sjis-winからいったんUTF-8に
$hoge=mb_convert_encoding($hoge , "UTF-8", "sjis-win");
//機種依存文字を変換
$hoge =str_replace("Ⅰ","Ⅰ",$hoge);
//機種依存文字を変換
$hoge =  mb_convert_encoding($hoge , "EUC-JP", "UTF-8");

で無事完了しました!

ページトップへ