[PHP-users 34593] Re: 変換不能文字の数値エンティティ化

clicker @ fooo.cjb.net clicker @ fooo.cjb.net
2009年 5月 27日 (水) 23:10:48 JST


>柳本です。
>mb_substitute_character("long");
>これとpreg_replace()あたりでどうですか?

ありがとうございます。
mb_substitute_characterで、まさかそんな指定ができるとは。
リファレンスをよく読んでませんでした、すいません。
しかしこれでかなりいいところまで辿り着きました。

$subChar = mb_substitute_character();
mb_substitute_character("long");
$text = mb_convert_encoding($text, 'SJIS-win', 'UTF-8');
$text = preg_replace('/U\+([0-9A-F]{1,5})/', '&#x$1;', $text);
mb_substitute_character($subChar);

[0-9A-F]が後に続かないパターンならこれでOKのようです。
例えばU+118;のように終端があれば、きれいに置換できそうなんですが…

---
武山


PHP-users メーリングリストの案内