public static function utf8($value, array $options = [])
    {
        if (!is_string($value)) {
            return false;
        }
        $options += ['extended' => false];
        if ($options['extended']) {
            return true;
        }

        return preg_match('/[\x{10000}-\x{10FFFF}]/u', $value) === 0;
    }
public static function utf8($value, array $options = [])
    {
        if (!is_string($value)) {
            return false;
        }
        $options += ['extended' => false];
        if ($options['extended']) {
            return true;
        }

        return preg_match('/[\x{10000}-\x{10FFFF}]/u', $value) === 0;
    }
public static function utf8 ( $ value , array $ options = [ ] ) { if ( ! is_string ( $ value ) ) { return false ; } $ options += [ 'extended' => false ] ; if ( $ options [ 'extended' ] ) { return true ; } return preg_match ( '/[\x{10000}-\x{10FFFF}]/u' , $ value ) === 0 ; }
Check that the input value is a utf8 string.

This method will reject all non-string values.

# Options

- `extended` - Disallow bytes higher within the basic multilingual plane.
MySQL's older utf8 encoding type does not allow characters above
the basic multilingual plane. Defaults to false.

@param string $value The value to check
@param array $options An array of options. See above for the supported options.
@return bool
Check that the input value is a utf8 string .