好吧,我正在尝试做的是从数据库中打印几行文本到一个页面,我遇到的问题是它在文本中看到类似'
的内容,它发出?
。所以我想知道有没有办法绕过这个?我知道HTML可以使用特殊字符,但我在这里处理动态数据。我确实尝试过这样做,但它只是不起作用:
<?php
include("connect.php");
$queryCurUser = "SELECT * FROM wn_current;";
$queryResult2 = mysql_query($queryCurUser, $conn) or
die ("queryResult Failed: ". mysql_error());
while ($row = mysql_fetch_array($queryResult2))
{
$body = $row['body'];
echo $row['heading'];
echo"<br/>";
if($body == "'"){
echo"hot dog";
}
echo"<br/>";
echo $row['pdflink'];
}
?>
答案 0 :(得分:1)
您需要将数据库中使用的字符集更改为包含更多字符的字符集 - 例如UTF-8。
答案 1 :(得分:1)
您需要告诉浏览器数据的编码是什么。
这个标签最有可能解决你的困境:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
如果这不起作用,请尝试以下方法:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
答案 2 :(得分:0)
检查数据库表使用的字符集;您可能想要将其更改为使用UTF-8。还要考虑在回显输出上使用htmlentities()和正确的字符集来转换任何具有HTML字符实体等价物的字符,例如
echo htmlentities($body, ENT_NOQUOTES, 'UTF-8', false);
答案 3 :(得分:0)
如果您存储国际字符(á,ê等),您不仅需要为数据库选择正确的字符编码(例如UTF-8),还需要告诉浏览器使用正确的字符集,通过
元标记:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
或php标头:
header("Content-Type: text/html; charset=utf-8");
此外,可能需要指定MySQL扩展应与mysql_set_charset()一起使用的字符集。
答案 4 :(得分:0)
$body=str_replace['"', """, $body]; // double quotes
似乎有效