2011-04-15 79 views
0

我从数据库中获取大量文本信息,但在使用PHP回显时,字符正在更改。我如何让它显示正常的东西?谢谢。为什么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 

更多...

+0

您能否给我们提供更多从数据库中检索到的不良数据的例子? – Wes 2011-04-15 04:39:26

+0

你的数据库是什么字符集?文本从哪里插入到数据库中?什么charset是你的HTML页面? – alex 2011-04-15 04:40:58

+0

@alex utf8文本正在被用户插入。 – steve 2011-04-15 04:44:17

回答

2

一起来,过多的斜线。这通常是由于过度转义引起的,这可能是由于magic_quotes引起的,建议将其关闭,并使用mysql_real_escape_string来处理进入数据库的数据。在关闭它之前,请确保数据正确转义,因为这可能会在您的网站中引入SQL注入漏洞。

至于怪异的字符。您的数据库和网站字符集需要匹配。确保您的网站charset设置为utf-8,可以使用meta标签或header设置。

它对magic_quotes进行了重大更改,但一旦完成,您就不必担心再次对数据使用stripslashes。因为你不应该对数据库中的数据产生stripslashes,所以如果它首先被正确转义的话。

相关问题