PHP欧元符号htmlentities

时间:2012-04-15 13:36:23

标签: php

$string = 'ab!:;c+12,.3 €def-x/';
$string = preg_replace('/[^a-zA-Z0-9\s€+-]+/', '', $string);
$val=htmlentities($string, ENT_NOQUOTES, );
echo $string,"\n";

回声

abc+123 �def-x

而不是

abc+123 €def-x

我需要通过正则表达式获取欧元符号并进入数据库但不是欧元符号。

2 个答案:

答案 0 :(得分:1)

尝试:

$string = 'ab!:;c+12,.3 €def-x/';
$string = preg_replace('/[^a-zA-Z0-9\s€+-]+/u', '', $string);
$val=htmlentities($string, ENT_NOQUOTES, 'UTF-8');
echo $string,"\n";

应该修理它。

答案 1 :(得分:1)

您需要为正则表达式提供u修饰符,否则它不会处理Unicode字符:

preg_replace('/.../u', ...)

如果这样做,请确保源代码和文本以UTF-8编码。