1
$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

ユーロ記号を正規表現を介してデータベースに取り込む必要がありますが、ユーロ記号としては取得できません。

4

2 に答える 2

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";

それを修正する必要があります。

于 2012-04-15T13:41:54.863 に答える
1

正規表現の修飾子を指定する必要があります。u指定しないと、Unicode文字を処理しません。

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

その場合は、ソースコードとテキストがUTF-8でエンコードされていることを確認してください。

于 2012-04-15T13:42:27.243 に答える