开发者

Accented characters stored in MySQL database

I have a webapp that stores French text -- which potentially includes accented characters -- in a MySQL database. When data is retrieved directly through PHP, accented characters become gibbirish. For instance: qui r�fl�te la liste.

Hence, I use htmlentities() (or htmlspecialchars() ) to convert the string to html entities, and all is fine. However, when I come to output data that contains both accented characters and HTML elements, things get more complicated. For instance, <strong> is converted to &lt;strong&gt; and therefore not understood by the browser.

How can I simultaneously get accented characters displayed 开发者_运维知识库correctly and my HTML parsed correctly?

Thank you!


Maybe you could take a look to utf8_encode() and utf8_decode()


You should use UTF-8 encoding for storing the data in the database - then everything should work as expected and no htmlentities() will be required.

Make sure all aspect are utf-8 - the database, the tables encoding and collation, and the connection, both on the client and server side. Things might work even if not everything is utf-8, but might fail horribly when you will do backup & restore - that is why I recommend utf-8 across the board.


You could set the Collation of the database fields containing the accented character to utf8_general_ci to support them.

Eventually you can set the collation of the database as well, so all fields are set by default.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜