Php 数据库中的数据与htmlentities相呼应,用希伯来语给出了奇怪的符号

Php 数据库中的数据与htmlentities相呼应,用希伯来语给出了奇怪的符号,php,mysql,Php,Mysql,从数据库中提取数据后,我想使用htmlentities将其放在页面上。 但问题是,当我回音出来时,输出中会显示奇怪的字符-方块和其他奇怪的符号。我查过了,因为我用希伯来语回音。有什么建议可以解决这个问题吗 $query = "SELECT * FROM `house_data` WHERE 1 ORDER BY `timestamp` DESC"; while(($row = mysql_fetch_assoc($run_query))){ $types[] =

从数据库中提取数据后,我想使用
htmlentities
将其放在页面上。 但问题是,当我回音出来时,输出中会显示奇怪的字符-方块和其他奇怪的符号。我查过了,因为我用希伯来语回音。有什么建议可以解决这个问题吗

$query = "SELECT * FROM `house_data` WHERE 1 ORDER BY `timestamp` DESC";
        while(($row = mysql_fetch_assoc($run_query))){
        $types[] = $row;
}
foreach($types as $data){
   echo htmlentities($data['city']);
}

正如Maximus2012所说,问题在于第三个参数,即编码,这是一个非常重要的注意事项:页面beggining中的编码不会附加在这种情况下。因此,只需添加编码,它就像一个符咒:

echo htmlentities($data, ENT_QUOTES , "UTF-8");

是否尝试指定字符集并查看其是否有效:?从PHP手册页面:与htmlspecialchars()类似,htmlentities()采用可选的第三个参数编码,该参数定义转换中使用的编码。如果省略,此参数的默认值在PHP 5.4.0之前的版本中为ISO-8859-1,在PHP 5.4.0之后的版本中为UTF-8。尽管此参数在技术上是可选的,但强烈建议您为代码指定正确的值。除了上面其他人所说的,您的页面是否有
charset
meta标记?