1

我的正则表达式不会考虑重音字符,因此在搜索包含 ü、õ、ö 或 ä 字符的单词时找不到任何匹配项。

$data 是使用 strip_tags 从 HTML 标记中剥离的 HTML 数据,其中包含通过 CURL 从具有字符编码 UTF-8 的网站加载的带有 ü、õ、ö 和 ä 字符的单词(如返回的标题告诉我的那样);

$data = strip_tags( curl_exec('my_website_url') );
$match = preg_match( '/ü/' , $data , $matches );

我尝试使用以下(也使用“ISO-8859-1”):

mb_internal_encoding("UTF-8");
mb_regex_encoding('UTF-8');

或者:

$data = utf8_decode($data)

还没有成功。

4

2 回答 2

1

确保您的 PHP 源文件也是 UTF-8 编码的。

例如,如果是 ISO-8859-1,则preg_match 指令中的 s 将是与 UTF-8 数据中ü的 s 不同的字符。ü

于 2012-11-20T14:07:48.103 回答
0

您应该告诉PRCE您正在使用UTF-8,这是通过添加u修饰符来完成的 -> '/ü/u'。但如果可能,不要将这些字符直接放入源代码中。如果您更改(或您的编辑器将)文件的编码,您的代码将停止工作,并且跟踪它将是相当 PITA。我建议,不要'/ü/'直接用代码替换有问题的字符:'/\x{c3bc}/u'- 0xc3bc 是你的信。

于 2012-11-20T18:14:06.137 回答