我正在从数据库中删除评论,并且这个, ,出现......如何摆脱它?是因为数据库中有什么或者我是如何显示它的,我尝试过使用htmlspecialchars但是没有用。
请帮忙
答案 0 :(得分:1)
可能是您将信息存储在数据库中的方式存在问题。如果你使用的编码不接受重音(à,ñ,î,ç...),那么它会使用奇怪的符号存储它们。其他语言特定符号也是如此。可能没有针对数据库中已有内容的解决方案,但您仍然可以通过更改mysql中的编码类型来保存以下插入。
干杯
答案 1 :(得分:1)
当你的角色不知道如何显示时会发生这种情况。它在每个程序中显示不同,许多Windows程序将其显示为一个框,Firefox将其显示为钻石中的问号,其他程序只使用简单的问号。 因此,您可以使用较新的显示系统,安装缺少的字体(如果它是亚洲字符)或查看是否有一个或两个字符执行此操作,只需用可见的东西替换它们。
答案 2 :(得分:1)
问题在于字符编码。如果字符在数据库中显示正常,但不在页面上显示。您的页面需要设置为与数据库相同的字符编码。反之亦然,如果您发布到数据库字符编码的页面不匹配,那就很奇怪了。
我通常会将任何类型的发布字段(例如评论/帖子)的字符编码设置为UTF-8。大多数MySQL数据库默认使用拉丁字符集。因此,您需要修改它:http://yoonkit.blogspot.com/2006/03/mysql-charset-from-latin1-to-utf8.html
HTML部分可以使用META
代码完成:<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
或使用PHP:header('Content-type: text/html; charset=utf-8');
(必须放在任何输出之前。)
希望能为你赢得胜利。
答案 3 :(得分:0)
确保您的数据库是UTF-8(如果它不能解决问题,请确保在连接到数据库时指定您的字符集)。
您还可以在将数据输入数据库之前进行编码/解码。
我建议使用htmlspecialchars()进行编码,然后使用htmlspecialchars_decode()进行解码。
答案 4 :(得分:0)
正如其他人所说,检查数据库编码是什么。您可以尝试使用utf8_encode()
或iconv()
转换字符编码。
答案 5 :(得分:0)
你是否使用mysql_connect()在mysql_set_charset()中传递你的charset ???
答案 6 :(得分:-1)
检查代码是否有错误。考虑到你已经完全没有告诉我们你正在做什么的细节,这就是所有人都可以说的。
编码问题通常是导致这种情况的原因(你是从整数转换成字符吗?),所以,你通过检查是否正确转换来修复它。