「EUC-JP」の文字を「UTF-8」に変換する際の注意。
『①』『Ⅰ』『㈱』などの機種依存文字や、『髙(はしごだか)』『﨑(たちざき)』などのIBM拡張文字が含まれていると
|
$moji = "abc①Ⅰ㈱あかさたな髙﨑"; print mb_convert_encoding($moji, "UTF-8", "EUC-JP"); |
では正常に変換できず、文字化けしてしまう。ちなみに↑これだと出力は『abc???あかさたな??』となる。で、「EUC-JP」を「eucJP-win」に変えてやると、機種依存文字はクリアできるがIBM拡張文字はアウト。
|
$moji = "abc①Ⅰ㈱あかさたな髙﨑"; print mb_convert_encoding($moji, "UTF-8", "eucJP-win"); |
↑これの出力は『abc①Ⅰ㈱あかさたな』。
じゃあ、どうすればいいかというと、こんな感じに「SJIS(sjis-win)」をかましてやればいいらしい。
|
$moji = "abc①Ⅰ㈱あかさたな髙﨑"; print mb_convert_encoding(mb_convert_encoding($moji, "sjis-win", "eucJP-win), "UTF-8", "sjis-win"); |
これで『abc①Ⅰ㈱あかさたな髙﨑』と出力されるようになる。