akkun_choi pedia
mindia › akkun_choi pedia › 単語

PHP 機種依存文字を変換

akkun_choi · 2010-06-03 更新 · 1 ポイント · 履歴(2)
第 2 版(2010-06-03 10:42:16 · akkun_choi)を表示しています。 最新版に戻る

以下php4.4.9で確認

「①」「㈱」などの機種依存文字

euc -> sjis は変換してくれるけど、
euc -> UTF-8 が変換してくれないっぽい。

eucjp-win, sjis-winにすれば変換できる

$enc = mb_detect_encoding($data, "eucjp-win,sjis-win,UTF-8,ASCII");
$data = mb_convert_encoding($data, $to_enc, $enc);

しかし、「髙」は変換できない。わけわからん文字になる。

「髙(はしごたか)」「﨑(たつさき)」などの機種依存文字

eucjp-win -> UTF-8 はだめ。
EUC-JP -> sjis-win -> UTF-8 でOK

mb_convert_encoding(
  mb_convert_encoding($data, 'sjis-win', 'EUC-JP'),
  'UTF-8', 'sjis-win'
);

参考

http://shimax.cocolog-nifty.com/search/2007/12/phpeucjputf8_f714.html
PHP5.2だと eucJP-win の代わりに cp51932 が使える?

http://hal456.net/qdmail/irregular_char

履歴

タグ