Исправить неправильно отображаемую кодировку в 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);
Оригинальный выход:
Г-н Смит из Бангкока отпраздновал "Классику с современной женщиной".
Новый выпуск документа: г-н Смит из Бангкока отпраздновал "Классику с современной женщиной".
Ответы
Ответ 1
[EDIT]: как сохранить файлы как UTF-8 без спецификации:
В запросе OP, как вы можете это сделать в Windows:
- Загрузите Notepad ++. Это отличный текстовый редактор, который вы должны использовать.
- Установите его.
- откройте PHP script в Notepad ++, который содержит этот код. Страница, на которой вы все кодируете. Да, этот файл на вашем компьютере.
- В Notepad ++ из меню "Кодировка" вверху выберите "Преобразовать в UTF-8 без спецификации".
- Сохраните файл.
- Загрузите на свой веб-сервер по FTP или независимо от того, что вы используете.
- Теперь запустите script.
Ответ 2
У меня была та же проблема, но когда я добавил
ob_start();
в первую строку
ob_end_flush();
до конца он, кажется, работает
Ответ 3
У вас есть это в элементе <head>
:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
Следующим курсом будет использование HTML-объектов для отображения этих символов.
Ответ 4
У меня была такая же проблема с использованием класса phpQuery. Проблема IS, как упоминалось выше, в верхнем голосовавшем ответе - файл script сохраняется как UTF8-с спецификацией.
Поскольку у меня не было никаких шансов получить блокнот ++ на mac osX,
каждый вывод i, подобный этому utf8_decode()
BOM предназначен для MS-окон.