public static function isEncoded($data)
    {
        if (!is_string($data)) {
            return false;
        }

        $data = trim($data);
        if ('N;' == $data) {
            return true;
        }

        $match = array();
        if (!preg_match('/^([adObis]):/', $data, $match)) {
            return false;
        }

        switch ($match[1]) {
        case 'a' :
        case 'O' :
        case 's' :
            if (preg_match("/^{$match[1]}:[0-9]+:.*[;}]\$/s", $data)) {
                return true;
            }

            break;
        case 'b' :
        case 'i' :
        case 'd' :
            if (preg_match("/^{$match[1]}:[0-9.E-]+;\$/", $data)) {
                return true;
            }

            break;
        }

        return false;
    }