实际上,当我从本地主机上的数据库中获取数据时,我遇到了这个问题。数据库包含带有特殊字符的行。
比如——“你做得很好”。
但是当我使用echo $row['lines'];
它来获取数据时,会出现“你做得很好”。
任何人都请帮助我如何克服这个问题。
检查您的数据库编码,检查您在 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');
看起来像一个编码问题。尝试使用...
$row["lines"] = utf8_encode($row["lines"]);
...并确保您的网站中启用了 utf-8 编码。
我不建议在将其输入数据库之前尝试使用 HTML 编码之类的东西。这样做的一个问题是它使访问数据变得更加困难,例如按字母顺序检索结果。
我建议将所有内容都切换到 UTF-8。这意味着: