我在mysql数据库中存储了一些文本,比如“汤姆给莎拉5英镑买她的书”。
直到上个星期一,这本书从网站上撤下来后才在网站上完美地展示出来,上面写着“汤姆给莎拉5英镑买了她的书”。
现在,即使我根本没有更改/安装/卸载/更新任何内容,它也已经停止工作。
数据库中的旧值显示为“汤姆给了莎拉5英镑买书”。
在将此文本保存到数据库的表单上,它过去保存到数据库的罚款为“汤姆给莎拉5英镑买她的书”,现在保存为“汤姆给莎拉?5美元买她的书“,并在网站上显示为这个(“汤姆给了莎拉?她的书有5页)。
是什么原因造成的?我要把头发拔出来试着把这件事弄清楚。我一直在玩utf8编码/utf8解码,并使用iso-8859-1和utf-8字符集的网页,虽然每种方法产生不同的结果(例如“?5“/”5“/”5“/”5“/”5“/”5“/”5”),没有一个是正确的。
问题不可能是mysql,因为我可以在phpmyadmin中看到英镑符号,而且英镑符号在不同的web服务器上工作。
救命!
最佳答案
与其一遍又一遍地重复这个,我只想给你留下一个链接:
UTF-8 all the way through…
如果你遵循chazomaticus答案中提到的步骤,你的问题就会消失。
在您的特定问题中,数据库/表/字段编码可能是问题所在。