У меня есть некоторые неприятные проблемы с кодировкой символов, которые я просто не могу понять.
По сути, я экранирую HTML-код с сайта с помощью PHP, затем запускаю его через DOMDocument PHP, чтобы изменить некоторые URL-адреса и т. Д., И когда это будет сделано, он выводит HTML с некоторыми странными вещами. Пример: где должна быть конечная цитата, она выдает â
У меня есть метатег страницы для charset, установленный на utf-8
но затем â
символы появляются на экране как на сайте. Я не уверен, что я просто не понимаю кодировку символов, или что.
Любые предложения по наилучшему способу решить эту проблему? Что-то клиентская сторона с мета-тегом или какое-то серверное PHP-преобразование?
Иногда устанавливать кодировку в HTML или заголовке ответа недостаточно. Если на вашем сервере не настроено UTF-8, ваш текст может быть некорректно преобразован где-то на этом пути. Возможно, вам придется включить кодировку UTF-8 для Apache и PHP прямо в своих файлах конфигурации. (Если вы не используете Apache, попробуйте пропустить этот шаг.)
Измените либо ваш charset.conf (ideal), либо файл httpd.conf , добавив эту строку в конец:
AddDefaultCharset utf-8
(Если у вас нет доступа к файлам конфигурации Apache, вы можете создать файл « .htaccess » в корневом каталоге вашего HTML с тем же кодом.)
Отредактируйте файл php.ini, выполнив поиск « default_charset » и изменив его на:
default_charset = "utf-8"
В зависимости от типа вашего сервера эта команда может выполнить трюк через командную строку:
sudo service apache2 restart
Я думаю, вам нужно связать / опубликовать страницу (ее часть), с которой вы столкнулись, и некоторые из вашего кода, чтобы получить лучшую обратную связь.
Несколько предложений: попробуйте преобразовать строку страницы, которую вы получили, от кодировки, указанной в ее метатеге (или реальной кодировке документа, если это не так), к UTF-8 и / или принудительному кодированию документа в объекте DOMDocument (как ~ mario описал или использовал свойства), поскольку DOMDocument, по-видимому, правильно использует метатег кодирования, только если он является первым в заголовке HTML-заголовка.
Вы также можете попытаться отключить преобразование объектов или некоторые другие свойства, поскольку вам это не нужно для простого изменения URL.