PHP preg_match不允许æøå

时间:2017-01-14 22:02:51

标签: php validation utf-8

我正在尝试让我的注册脚本只接受字母和æøå,但到目前为止我没有尝试过任何工作。它仍然不接受æøå。

这是我目前的代码

if ($_POST['first'] != "" && preg_match("%^[-a-zA-Z æøå\/]+$%", $_POST['first']) == true && strlen($_POST['first']) > 0) { 
    $input_first = mysqli_real_escape_string($con,$_POST['first']); } 
else { header("Location: ../register.php?n=2"); exit; die(); }

我做错了什么?

1 个答案:

答案 0 :(得分:0)

如果您的PHP文件已经是UTF-8编码,您应该告诉您的数据库,您需要UTF-8。而不是摆弄MySQL的配置,只需告诉您的连接对象,您期望的字符集,数据库将为您完成其余的工作。

这是mysqli连接对象的示例:

 //Test-ak
  $db = new mysqli($dbHost, $dbUser, $dbPw, $dbName);
  $db->set_charset("utf8");

之后您的查询将返回UTF-8编码结果。