我有一个webapp,可以在MySQL数据库中存储法语文本 - 可能包含重音字符。当通过PHP直接检索数据时,重音字符变成gibbirish。例如:qui r�fl�te la liste.
因此,我使用htmlentities()
(或htmlspecialchars()
)将字符串转换为html实体,一切都很好。但是,当我输出包含重音字符和HTML元素的数据时,事情变得更加复杂。例如,<strong>
转换为<strong>
,因此浏览器无法理解。
如何同时正确显示重音字符并正确解析我的HTML?
谢谢!
答案 0 :(得分:10)
也许您可以查看utf8_encode()
和utf8_decode()
答案 1 :(得分:4)
您应该使用UTF-8编码将数据存储在数据库中 - 然后一切都应该按预期工作,并且不需要htmlentities()
。
确保所有方面都是utf-8 - 客户端和服务器端的数据库,表格编码和排序规则以及连接。即使不是所有东西都是utf-8,事情也许会奏效,但是当你做备份时可能会失败。恢复 - 这就是为什么我全面推荐utf-8。
答案 2 :(得分:0)
您可以将包含重音字符的数据库字段的排序规则设置为utf8_general_ci以支持它们。
最后,您也可以设置数据库的排序规则,因此默认设置所有字段。