相关疑难解决方法(0)

PHP中的preg_match和UTF-8

我正在尝试使用preg_match搜索UTF8编码的字符串.

preg_match('/H/u', "\xC2\xA1Hola!", $a_matches, PREG_OFFSET_CAPTURE);
echo $a_matches[0][1];
Run Code Online (Sandbox Code Playgroud)

这应该打印1,因为"H"在字符串"¡Hola!"中的索引1处.但它打印2.所以它似乎并没有将主题视为UTF8编码的字符串,即使我在正则表达式中传递"u" 修饰符.

我在php.ini中有以下设置,其他UTF8函数正在运行:

mbstring.func_overload = 7
mbstring.language = Neutral
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

php unicode pcre utf-8

33
推荐指数
4
解决办法
6万
查看次数

标签 统计

pcre ×1

php ×1

unicode ×1

utf-8 ×1