存储在MySQL数据库中的重音字符

时间:2010-01-12 22:36:37

标签: php mysql

我有一个webapp,可以在MySQL数据库中存储法语文本 - 可能包含重音字符。当通过PHP直接检索数据时,重音字符变成gibbirish。例如:qui r�fl�te la liste.

因此,我使用htmlentities()(或htmlspecialchars())将字符串转换为html实体,一切都很好。但是,当我输出包含重音字符和HTML元素的数据时,事情变得更加复杂。例如,<strong>转换为&lt;strong&gt;,因此浏览器无法理解。

如何同时正确显示重音字符并正确解析我的HTML?

谢谢!

3 个答案:

答案 0 :(得分:10)

也许您可以查看utf8_encode()utf8_decode()

答案 1 :(得分:4)

您应该使用UTF-8编码将数据存储在数据库中 - 然后一切都应该按预期工作,并且不需要htmlentities()

确保所有方面都是utf-8 - 客户端和服务器端的数据库,表格编码和排序规则以及连接。即使不是所有东西都是utf-8,事情也许会奏效,但是当你做备份时可能会失败。恢复 - 这就是为什么我全面推荐utf-8。

答案 2 :(得分:0)

您可以将包含重音字符的数据库字段的排序规则设置为utf8_general_ci以支持它们。

最后,您也可以设置数据库的排序规则,因此默认设置所有字段。