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

clicker @ fooo.cjb.net clicker @ fooo.cjb.net
2009年 5月 28日 (木) 09:58:49 JST


自己レスです。
mb_substitute_character("long")ができるならひょっとしてと思い
PHPのソースコード見てみました。そしたらなんと none, long, entity
とあるではないですか!
試してみたところ、期待通りでした。
mb_substitute_character("entity");
$text = mb_convert_encoding($text, 'SJIS-win', 'UTF-8');
一応PHP5.2.6で確認しましたが、マニュアルに書いてないので、何か問題があって
experimentalなのかも知れません。使われる方は自己責任でお願いします。
# ってぜんぶ自己責任ですが..
>> 柳本です。
>> 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})/', '&#x1ドル;', $text);
> mb_substitute_character($subChar);
>> [0-9A-F]が後に続かないパターンならこれでOKのようです。
> 例えばU+118;のように終端があれば、きれいに置換できそうなんですが...
>> ---
> 武山


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

AltStyle によって変換されたページ (->オリジナル) /