src/Peach/DF/Utf8Context.php
private function getUnicodeNumber($str)
    {
        $first  = ord($str);
        $length = strlen($str);
        $div    = pow(2, 7 - $length);
        
        // UNICODE の数値
        $bit = $first % $div;
        for ($i = 0; $i < $length - 1; $i ++) {
            $code = ord(substr($str, $i + 1, 1));
            // 2バイト目以降のビットが 10xxxxxx でない場合は不正なパターンとする
            if (intval($code / 64) !== 2) {
                return null;
            }
            $bit *= 64;
            $bit += $code % 64;
        }
        
        return $bit;
    }
private function getUnicodeNumber($str)
    {
        $first  = ord($str);
        $length = strlen($str);
        $div    = pow(2, 7 - $length);
        
        // UNICODE の数値
        $bit = $first % $div;
        for ($i = 0; $i < $length - 1; $i ++) {
            $code = ord(substr($str, $i + 1, 1));
            // 2バイト目以降のビットが 10xxxxxx でない場合は不正なパターンとする
            if (intval($code / 64) !== 2) {
                return null;
            }
            $bit *= 64;
            $bit += $code % 64;
        }
        
        return $bit;
    }
指定されたバイト列を Unicode 符号点に変換します.
引数が不正なバイト列だった場合は null を返します.

@param  string $str 次の 1 文字のバイト列
@return int         次の文字の Unicode 符号点