如何更换子弹•

时间:2015-05-07 02:56:36

标签: php html

我正在从包含项目符号和换行符的数据库中检索文本数据。我已经成功删除了换行符,并使用PHP中的strace函数将它们转换为<br />,但子弹行为很奇怪并显示“?”而不是“•”(见截图)。

enter image description here

我尝试在PHP中使用nl2br()函数,但它仍显示相同的输出。

2 个答案:

答案 0 :(得分:3)

我现在使用htmlentities()代替htmlspecialchars。我已经解决了我自己的问题,但我希望这个帖子将来会帮助其他人。

答案 1 :(得分:0)

Unicode字符U+2022 (BULLET)以UTF-8编码为八位字节E2 80 A2。如果您的页面包含这些八位字节,并且使用不同的字符编码(例如Windows-1252)错误地解释了页面,则生成的页面将显示三个字符â,{{1 }}

要正确显示项目符号字符,您需要为文档声明正确的字符编码:

¢

如果使用UTF-8编码是不可行的,您可以使用htmlentities()转换字符串,该字符串应将项目符号字符和其他不可显示的字符转换为HTML字符引用(header ('Content-Type: text/html; charset=utf-8'); ):

&bull;

或者,如果没有正确配置PHP的字符编码:

$s = "Bullet \xe2\x80\xa2 character";
echo htmlentities ($s), "\n";
相关问题