Акцентированные символы хранятся в базе данных MySQL - PullRequest
2 голосов
/ 13 января 2010

У меня есть веб-приложение, которое хранит текст на французском языке - который может включать символы с акцентом - в базе данных MySQL. Когда данные извлекаются непосредственно через PHP, акцентированные символы становятся бессмысленными. Например: qui r�fl�te la liste.

Следовательно, я использую htmlentities() (или htmlspecialchars()) для преобразования строки в html-объекты, и все в порядке. Однако, когда я прихожу к выводимым данным, которые содержат и акцентированные символы и элементы HTML, все становится более сложным. Например, <strong> преобразуется в &lt;strong&gt; и поэтому не распознается браузером.

Как я могу одновременно отображать символы с акцентом и правильно анализировать мой HTML?

Спасибо!

Ответы [ 3 ]

10 голосов
/ 13 января 2010

Может быть, вы могли бы взглянуть на utf8_encode() и utf8_decode()

4 голосов
/ 13 января 2010

Вы должны использовать кодировку UTF-8 для хранения данных в базе данных - тогда все должно работать как положено, и htmlentities() не потребуется.

Убедитесь, что все аспекты являются utf-8 - база данных, кодирование и сопоставление таблиц, а также соединение как на стороне клиента, так и на стороне сервера. Все может работать, даже если не все в UTF-8, но может ужасно потерпеть неудачу, когда вы будете выполнять резервное копирование и восстановление - вот почему я рекомендую UTF-8 по всем направлениям.

0 голосов
/ 13 января 2010

Вы можете установить параметры сортировки полей базы данных, содержащих символ с акцентированием, на utf8_general_ci для их поддержки.

В конце концов вы также можете установить параметры сортировки базы данных, поэтому все поля будут установлены по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...