PHP的UTF-8债券正则expression式不起作用

我有一个运行LAMP堆栈的最新更新的CentOS 6。

用户抱怨他的代码不起作用,他正在尝试使用unicode字符的preg_match。

这是代码不工作:

$regex = '/\bøl\b/iu'; preg_match($regex, "han drikker øl for sjov", $matches); print_r($matches); 

奇怪的是,这个确切的代码在其他服务器上工作得很好,我不能解决这个问题。 我已经尝试了几件事情:

  • PCRE已安装,并且支持UTF-8
  • 确保该文件实际上是UTF-8
  • 试过设置mb_regex_encoding
  • 我也读过这个问题,但是,它在没有这个的其他服务器上工作,就像我的例子
  • mbstring()已安装
  • PHP版本是5.3,是由yum供应商提供的软件包

此外,我刚刚从源头上手工构build的安装中进行了testing,并且在那里工作起来就像是一种魅力 – 但我宁愿不用手工构build软件包。

有什么build议么?