Исправить неправильно отображаемую кодировку в html-документе с php
есть ли способ исправить символы, которые отображаются неправильно после запуска этой разметки html через phpquery:: newDocument? В оригинальном документе есть двойные кавычки-классика с современной женщиной-которые в конечном итоге отображаются неправильно после создания нового документа с phpquery.
//Original document is UTF-8 encoded
$raw_html = '<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body><p>Mr. Smith of Bangkok celebrated the “Classics with modern Woman”.</p></body></html>';
print($raw_html);
$aNew_document = phpQuery::newDocument($raw_html);
print($aNew_document);
Оригинальный Вывод: Г-н Смит из Бангкока отпраздновал "классику с современной женщиной".
новый документ выходные данные: Г-н Смит из Бангкока праздновали �классики с современной женщиной.
4 ответов
- вам нужно сохранить страницу с
UTF-8 without BOM
кодировка. -
добавьте этот заголовок поверх скрипта:
header("Content-Type: text/html; charset=UTF-8");
[EDIT]: как сохранить файлы как UTF-8 без спецификации:
по запросу OP, вот как вы можете сделать в Windows:
- скачать Блокнот++. Это удивительный текстовый редактор, который вы должны использовать.
- установить его.
- открыть PHP-скрипт в Notepad++, содержащий этот код. Страница, на которой Вы делаете все кодирование. Да, тот файл на вашем компьютере.
- в Notepad++ в меню кодировки вверху выберите "Преобразовать в UTF-8 без спецификации".
- сохраните файл.
- загрузить на сервер по FTP или что вы используете.
- Теперь запустите этот сценарий.
у меня была такая же проблема, но когда я добавил
ob_start();
в первой строке
ob_end_flush();
до конца, похоже, работает
это <head>
элемент:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
следующий курс будет использовать HTML-объекты для отображения этих символов.
У меня была такая же проблема с использованием класса phpQuery. Проблема, как упоминалось выше, в топ - голосовании файл сценария сохраняется как UTF8-с BOM.
поскольку у меня не было никаких шансов получить notepad++ на mac osX,
каждый вывод, который я подготовил, как это utf8_decode()
BOM предназначен для MS-windows.