У меня есть приложение, в котором пользователи вводят текст в формы.
Данные сохраняются в базе данных MySQL (сортировка: utf8_general_ci
), а затем выводятся как XML (кодирование: UTF-8).
Проблема заключается в том, что люди склонны вырезать и вставлять свою информацию из других источников, например, документы Microsoft Word или PDF файлы, например.
Этот текст ввода часто содержит символы, которые являются неправильными для выходной кодировки, такие как "умные кавычки", которые поступают из документа в кодировка Windows-1252
Это вызывает проблемы, очевидно, при преобразовании или другой работе над XML, поскольку символы являются незаконными.
Итак, как дезинфицировать вход?
Раньше я использовал некоторые довольно грубые методы, такие как "de-moronize" script, который состоит из длинный список операций поиска и замены.
Это лучший способ сделать это? Есть ли другой путь?
Можно ли просто установить атрибут accept-charset в форме и сделать браузер для меня?
Если да, то какие браузеры будут делать это и могут ли возникнуть какие-либо проблемы?
Также, как моя база данных принимает эти символы, которые являются зарезервированными/управляющими символами в UTF-8?
Как вы можете видеть, я знаю достаточно о кодировках, чтобы знать, что у меня есть проблема, но теперь я немного из глубины...
ТИА