Проблемы с кодировкой PHP и апострофы при вставке из MS Word - PullRequest
2 голосов
/ 20 января 2011

У меня есть форма, которая отправляет электронное письмо на мой адрес электронной почты.Все работает отлично, кроме случаев, когда кто-то вставляет что-то из MS Word в форму.Весь текст доходит, но кодировка на апострофах и двойных кавычках все перепутано.Они появляются как странные символы.

Есть ли способ легко решить эту проблему?

Ответы [ 4 ]

9 голосов
/ 03 сентября 2012

Для меня это решение отлично работает:

Преобразование строки, преобразованной в Windows, в utf-8.

$str = iconv("cp1252","UTF-8", $str);
  • cp866 MS DOS Кириллица
  • cp1251 Windows Кириллица
  • cp1253 Windows западноевропейский язык

Дополнительная информация о iconv()

2 голосов
/ 20 января 2011

MS Word использует апострофы и кавычки, которые недопустимы в соответствии с UTF8. Вот статья на SO об этом:

PHP - избавление от фигурных апострофов

0 голосов
/ 19 мая 2018

У вас должна быть одинаковая кодировка как на странице html формы, так и на странице, которая генерирует содержимое электронной почты. Например, установите utf-8 на html-странице, которая отображает форму. Кроме того, при создании почтового сообщения при отправке установите в заголовке кодировку utf-8. Это отлично работает. Если вы используете phpmailer для электронной почты, вы можете установить кодировку через объект класса phpmailer, например $mail->Charset = 'utf-8' Это хорошо работает, когда вы храните и извлекаете из базы данных. Хитрость заключается в том, чтобы сохранить схему кодирования одинаковой на всем протяжении.

0 голосов
/ 20 января 2011

Вы пробовали использовать strip_tags()?

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