#php #forms #character-encoding #ms-word
#php #формы #кодировка символов #ms-word
Вопрос:
Хорошо известная проблема: при копировании текста из MS Word в текстовую область символы текста преобразуются в странные символы при сохранении его в базу данных.
Мне было интересно, как я должен это решить?
- Кодировка символов HTML-документа, содержащего форму
- Метод сохранения перед сохранением для очистки данных
- Очистка после извлечения данных (перед отображением)
- Конфигурация базы данных (кодировка символов для таблицы)
Я бы предпочел, чтобы 1. работал, но подойдет любое другое решение.
Ответ №1:
Решение:
- Кодировка символов HTML-документа, содержащего форму
Обычно это работает 1. Если это не работает, ваше приложение сломано, или браузер сломан, или буфер обмена поврежден, или MSWord сломан.
В любом случае вы не сможете исправить MSWord ни в буфере обмена, ни на стороне сервера браузера.
Вместо этого убедитесь, что кодировка, которую использует веб-сайт, может обрабатывать символы из буфера обмена, и соблюдайте запросы на кодировку в вашем приложении при обработке входных данных.
1 Пожалуйста, смотрите раздел Обработка кодировок символов в HTML и CSS, как это работает.
Комментарии:
1. Я бы проголосовал за это, если бы не тот факт, что наиболее распространенной причиной, безусловно, является плохое программирование — неспособность сопоставить кодировку в html с кодировкой, обрабатываемой PHP, и неспособность сопоставить кодировку в PHP с кодировкой, используемой базой данных.
2. @symcbean: Хорошо: «соблюдайте требования к кодированию в вашем приложении при обработке входных данных» 😉 В любом случае, я знаю, что вы имеете в виду, просто этот вопрос касался вставки из MSWord конкретно. Может быть, стоит добавить ответ, в котором вы проясняете пункты 2-4.