•突然出现而不是子弹

时间:2017-03-22 20:21:01

标签: php html mysql utf-8

我有一个非常简单的表单,它接受textarea并将内容放在MySQL数据库中,然后网站显示该信息。到目前为止,一切都运行良好,包括撇号和子弹等特殊字符,然而,现在突然出现撇号导致表格出错,子弹出现如下:•

所有页面都元编码为UTF-8,数据库排序规则为UTF-8,文本区域字符串由utf8_encode命令处理。

什么可能导致这种情况突然发生?

我一直在这里寻找答案,我只能找到人们在数据库或网页/表格上缺少UTF-8的情况。我唯一的假设是由主机进行PHP版本更新,但是,我无法确认,因为他们使用的专有系统不让我看到当前运行的版本号,我不知道它是否会受到这种影响

如果重要,textareas总是包含在HTML预标签中以进行格式化。

3 个答案:

答案 0 :(得分:1)

当涉及到char编码时,我显然有点落后 - 确保你正确地宣布了字符集。

https://www.w3.org/International/questions/qa-html-encoding-declarations

html5只需要<meta charset="utf-8">。如果您使用此功能,请确保在html顶部使用<!DOCTYPE html>,否则您可能会遇到<meta charset="utf-8">无效的HTML4问题。

答案 1 :(得分:1)

<archive> <manifest> <addClasspath>true</addClasspath> </manifest> </archive> 是子弹的Mojibake。使用this找出你做错了什么。

答案 2 :(得分:1)

在检查几次所有内容都已正确编码后,我最终尝试了以下解决方案:

在将textarea中的数据传递给MYSQL DB之前,我运行了这个:

mb_convert_encoding(textareacontents, "HTML-ENTITIES", "UTF-8")

我跑完那条线后一切都开始工作了。我不完全确定为什么这个mobijake问题开始随机发生,特别是在所有适当的字符集到位的情况下,然而,这似乎有所帮助。希望这有助于某人陷入困境。