preg_match()添加无意义的字符

时间:2012-02-06 03:56:42

标签: php regex unicode preg-match pcre

我正在尝试匹配DMS纬度/经度。不过,我遇到了一些麻烦。到目前为止,我可以检测到模式,但是匹配会在特殊字符旁边返回一个无意义的字符。这是我的代码:

//Begin code
$pattern = '/[0-9]{1,3}[:| |\x{00B0}]{0,1}[0-9]{1,2}[\']{0,1}[0-9]{1,2}["]{0,1}[N|S|E|W]/ui';
$value = "12°30'23\"S";
preg_match($pattern,$value,$matches);
print_r($matches);
//End code

这是输出:

Array ( [0] => 12°30'23"S ) 

如您所见,12和°之间存在不受欢迎的Â。

请帮忙!

1 个答案:

答案 0 :(得分:1)

您是否验证过字符集在HTTP标头中设置为UTF-8或Unicode?有关PHP和Unicode的更多信息,请参阅此页面:http://ibm.com/developerworks/library/os-php-unicode/index.html