我有一个非常简单的表单,它接受textarea并将内容放在MySQL数据库中,然后网站显示该信息。到目前为止,一切都运行良好,包括撇号和子弹等特殊字符,然而,现在突然出现撇号导致表格出错,子弹出现如下:•
所有页面都元编码为UTF-8,数据库排序规则为UTF-8,文本区域字符串由utf8_encode命令处理。
什么可能导致这种情况突然发生?
我一直在这里寻找答案,我只能找到人们在数据库或网页/表格上缺少UTF-8的情况。我唯一的假设是由主机进行PHP版本更新,但是,我无法确认,因为他们使用的专有系统不让我看到当前运行的版本号,我不知道它是否会受到这种影响
如果重要,textareas总是包含在HTML预标签中以进行格式化。
答案 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问题开始随机发生,特别是在所有适当的字符集到位的情况下,然而,这似乎有所帮助。希望这有助于某人陷入困境。