У меня есть webapp, который хранит французский текст, который потенциально включает символы с акцентом, в базе данных MySQL. Когда данные извлекаются непосредственно через PHP, акцентированные символы становятся gibbirish. Например: qui r fl te la liste.
Следовательно, я использую htmlentities()
(или htmlspecialchars()
) для преобразования строки в html-объекты, и все в порядке. Однако, когда я прихожу к выводам данных, содержащих как акцентированные символы, так и элементы HTML, все становится все сложнее. Например, <strong>
преобразуется в <strong>
и поэтому не понимается браузером.
Как я могу одновременно получить символы с акцентом, правильно отображаемые, и мой HTML правильно обработал?
Спасибо!
Возможно, вы можете взглянуть на utf8_encode()
и utf8_decode()
Вы должны использовать кодировку UTF-8 для хранения данных в базе данных – тогда все должно работать как ожидалось, и не htmlentities()
.
Убедитесь, что все аспекты utf-8 – база данных, кодировка и сопоставление таблиц и соединение, как на стороне клиента, так и на стороне сервера. Все может работать, даже если не все – utf-8, но может быть неудачно, когда вы будете делать резервное копирование и восстановление – вот почему я рекомендую utf-8 по всем направлениям.
Вы можете установить Collation полей базы данных, содержащих акцентированный символ, в utf8_general_ci для их поддержки.
В конце концов вы также можете установить сортировку базы данных, поэтому все поля устанавливаются по умолчанию.