如果字符串中的某处是非 UTF8 字符,则带有修饰符 u 的 preg_match 将返回 false 以表示错误。例如:
<?php
$string = "ABCD\xc3";
$r = preg_match('/^./u',$string, $match);
var_dump($r); //bool(false)
这个例子自己试试:https ://3v4l.org/qkHl4
如果最后删除了非 UTF8 字符,则正则表达式会查找第一个字符。
$string = "ABCD";
$r = preg_match('/^./u',$string, $match);
var_dump($r, $match);
//int(1) array(1) { [0]=> string(1) "A" }
是否有一种简单的方法可以使用正则表达式在开头识别还包含非 UTF8 字符的字符串的 UTF-8 字符?