Правильное кодирование символов для отображения «& acirc; & # 128; & # 157;»?

У меня есть некоторые неприятные проблемы с кодировкой символов, которые я просто не могу понять.

По сути, я экранирую HTML-код с сайта с помощью PHP, затем запускаю его через DOMDocument PHP, чтобы изменить некоторые URL-адреса и т. Д., И когда это будет сделано, он выводит HTML с некоторыми странными вещами. Пример: где должна быть конечная цитата, она выдает ”

У меня есть метатег страницы для charset, установленный на utf-8 но затем ” символы появляются на экране как на сайте. Я не уверен, что я просто не понимаю кодировку символов, или что.

Любые предложения по наилучшему способу решить эту проблему? Что-то клиентская сторона с мета-тегом или какое-то серверное PHP-преобразование?

Иногда устанавливать кодировку в HTML или заголовке ответа недостаточно. Если на вашем сервере не настроено UTF-8, ваш текст может быть некорректно преобразован где-то на этом пути. Возможно, вам придется включить кодировку UTF-8 для Apache и PHP прямо в своих файлах конфигурации. (Если вы не используете Apache, попробуйте пропустить этот шаг.)

Настройка Apache UTF-8:

Измените либо ваш charset.conf (ideal), либо файл httpd.conf , добавив эту строку в конец:

 AddDefaultCharset utf-8 

(Если у вас нет доступа к файлам конфигурации Apache, вы можете создать файл « .htaccess » в корневом каталоге вашего HTML с тем же кодом.)

Настройка PHP UTF-8:

Отредактируйте файл php.ini, выполнив поиск « default_charset » и изменив его на:

 default_charset = "utf-8" 

Перезапустить Apache:

В зависимости от типа вашего сервера эта команда может выполнить трюк через командную строку:

 sudo service apache2 restart 

Я думаю, вам нужно связать / опубликовать страницу (ее часть), с которой вы столкнулись, и некоторые из вашего кода, чтобы получить лучшую обратную связь.

Несколько предложений: попробуйте преобразовать строку страницы, которую вы получили, от кодировки, указанной в ее метатеге (или реальной кодировке документа, если это не так), к UTF-8 и / или принудительному кодированию документа в объекте DOMDocument (как ~ mario описал или использовал свойства), поскольку DOMDocument, по-видимому, правильно использует метатег кодирования, только если он является первым в заголовке HTML-заголовка.

Вы также можете попытаться отключить преобразование объектов или некоторые другие свойства, поскольку вам это не нужно для простого изменения URL.