• ベストアンサー

機種依存文字

機種依存文字を排除したいのですが、PHPでどのように書けばいいのか検討がつきません。 また、DB(Postgres)で検索のときに、排除できるのならばいいのですが、そのような検索方法はないですよね?

質問者が選んだベストアンサー

  • ベストアンサー
  • iiikkk
  • ベストアンサー率37% (92/247)
回答No.3

#1です。 機種依存文字は、 http://www.shtml.jp/mojibake/izon_check.html より、  ・13区の特殊文字(0x8740~0x879F 83文字)  ・NEC選定IBM拡張文字(0xED40~0xEEFC 374文字)  ・IBM拡張文字(0xFA40~0xFC4B 388文字)  ・外字(0xF040~0xF9FC) ということで、 |[\x85-\x88][\x40-\x9E]|[\xEA-\xFC][\xA5-\xFC] が不要そうですね。

aiurai54
質問者

お礼

早速の回答ありがとうございます。 こちらで、修正してみようと思います。

その他の回答 (2)

  • hiro823
  • ベストアンサー率25% (74/285)
回答No.2

こんにちは。 PHPユーザーメーリングリストの過去検索を貼り付けておきますので、参考にしてみてください。 http://ns1.php.gr.jp/pipermail/php-users/2003-June/016573.html 機種依存文字があるかどうかをチェック→はじく or 変換する、というコトをされてるみたいです。 検索ワードは「機種 依存です。

aiurai54
質問者

お礼

ありがとうございます。私には少し難しいようでした。 参考になりました。

  • iiikkk
  • ベストアンサー率37% (92/247)
回答No.1

if( preg_match( "/([\x87][\x40-\x9F]|[\xED-\xEE][\x40-\xFC]|[\xFA-\xFC][\x40-\x4B]|[\xF0-\xF9][\x40-\xFC]|[\x85-\x88][\x40-\x9E]|[\xEA-\xFC][\xA5-\xFC])/", $str )) { print "機種依存文字"; } どこかでこんなの見て、参考にさせてもらいました。

aiurai54
質問者

お礼

ありがとうございます。うまくいきました。

aiurai54
質問者

補足

再び質問なのですが、全角カタカナもこれだと機種依存文字となりますが、全角カタカナはどれをあらわしているのでしょうか? 参考になるURLなどあれば教えてください。

関連するQ&A