У меня есть форма с текстовым полем. Пользователи вводят блок текста, который хранится в базе данных.
Иногда пользователь вставляет текст из Word, содержащего интеллектуальные кавычки или emdash. Эти символы появляются в базе данных как: ",", "¬", "
Какую функцию я должен вызывать на входной строке для преобразования умных кавычек в обычные кавычки и emdash в обычные тире?
Я работаю в PHP.
Обновление: Спасибо за все замечательные ответы. Страница на сайте Joel о кодировках очень информативна: http://www.joelonsoftware.com/articles/Unicode.html
Некоторые заметки о моей среде:
В базе данных MySQL используется кодировка UTF-8. Аналогично, страницы HTML, отображающие контент, используют UTF-8 (Update:), явно устанавливая тип метаконтента.
На этих страницах умные кавычки и emdash появляются как алмаз с вопросительным знаком.
Решение:
Еще раз спасибо за ответы. Решение было двояким:
- Убедитесь, что база данных и HTML файлы были явно настроены на использование UTF-8.
- Используйте
htmlspecialchars()
вместоhtmlentities()
.