为什么PHP中的这些字符会被转换


Why are these characters in PHP getting converted?

我正在从数据库中获得一些信息,如大量文本,但是在使用PHP回显时,字符正在改变。我如何让它显示正常的东西?谢谢。

//makes database connection and queries the db
$row = mysqli_fetch_array($result);
echo $row['text'];

  � inside has a question mark
' before every apostrophe
and it''''s

和更多…

首先,过量的斜杠。这通常是由于magic_quotes导致的过度转义造成的,建议将其关闭并对进入数据库的数据使用mysql_real_escape_string。但是,在关闭它之前,请确保数据被正确转义,因为这可能会在您的站点中引入sql注入漏洞。

至于那个奇怪的字符。您的数据库和网站字符集需要匹配。确保您的网站字符集设置为utf-8,无论是与元标签或header设置。

对于magic_quotes来说,这是一个艰难的改变,但是一旦完成,您就不必担心再次在数据上使用stripslashes。因为您不应该对来自数据库的数据执行stripslashes,如果它首先被正确转义的话。