機種依存文字の判定

機種依存文字の判定に手間取ってなんとかやり方を見出したのでメモ。

環境はPHP5.3.3
内部エンコードUTF-8

はまったところとしては正規表現文字コードがなぜかEUC-JPだったこと。

<?php
public function hoge($str)
{
    mb_regex_encoding('UTF-8');
    $pattern = "[\xE2\x85\x93-\xE2\x86\x82]|" . // 0x2153 - 0x2182
               "[\xE2\x91\xA0-\xE2\x93\xAF]|" . // 0x2460 - 0x24EF
               "[\xE3\x88\xA0-\xE3\x89\x83]|" . // 0x3220 - 0x3243
               "[\xE3\x8A\x80-\xE3\x8B\xBE]|" . // 0x3280 - 0x32FE
               "[\xE3\x8C\x80-\xE3\x8D\xBF]|" . // 0x3300 - 0x337F 
               "[\xE3\x8E\x80-\xE3\x8F\x9D]" ;  // 0x3380 - 0x33DF
    if(!mb_ereg($pattern, $value)){
        return true;
    } else {
        return false;
    }
}
?>

文字コード勉強するか。

参考URL

http://memo.xight.org/2006-06-19-13


プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)