实际上,当我从localhost上的数据库中获取数据时,我遇到了问题。数据库包含带有特殊字符的行。
例如 - “你做得很好”。
但是当我使用echo $row['lines'];
获取数据时,它会带来“你做得很好”。
任何人都可以帮我解决这个问题。
答案 0 :(得分:2)
我怀疑这个文本实际上并没有使用'
字符,而是使用了简单的左单引号‘
,这是一个Unicode字符,并不是所有字符集都可用。因此,如果您使用的是非Unicode字符集,它会变得怪异并将其表示为?
此问题可能出现在代码中的几个不同位置,但需要检查的是:
<meta charset='utf-8'>
?也许还有其他几个。大多数情况下,检查整个管道并确保它是UTF-8直通。
答案 1 :(得分:1)
检查你的数据库编码,在php中检查你的连接编码,检查你的php-page编码。前两个应该匹配。如果页面编码与db编码不匹配,则应考虑使用iconv或mb_convert_encoding函数。
如果你使用html,也应该有正确的元标记,比如
<meta charset='utf-8'>
或
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
另外,如果你从php发送正确的标题会很棒:
header('Content-type:text/html;charset=utf-8');
答案 2 :(得分:0)
看起来像编码问题。尝试使用...
$row["lines"] = utf8_encode($row["lines"]);
...并确保您的网站启用了utf-8编码。
答案 3 :(得分:0)
我不建议在将其输入数据库之前尝试使用HTML编码之类的东西。其中一个问题是它使访问数据变得更加困难,例如按字母顺序检索结果。
我建议将所有内容切换为UTF-8。这意味着: