Is there a way to fix the characters that display improperly after running this html markup through phpquery::newDocument? There are slated double quotes around -Classics with modern Woman- in the original document that end up displaying improperly after creating the new doc with 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);
Original Output: Mr. Smith of Bangkok celebrated the “Classics with modern Woman”.
New Document Output: Mr. Smith of Bangkok celebrated the �Classics with modern Woman.
Adding <meta charset="utf-8"/> in the html code solved my issue in Firefox. Save this answer.
Always declare the encoding of your document using a meta element with a charset attribute, or using the http-equiv and content attributes (called a pragma directive).
UTF-8 without BOM
encoding. Add this header on top of your script:
header("Content-Type: text/html; charset=UTF-8");
[EDIT]: How to Save Files as UTF-8 without BOM :
On OP request, here's how you can do on Windows:
i had the same problem but when i added
ob_start();
to first line
ob_end_flush();
to the end it seem to be working
You have this in the <head>
element:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
The next course would be to use HTML entities to display these characters.
I had same problem using phpQuery class. Problem IS as mentioned above, in top voted answer - script file is saved as UTF8-with BOM.
As i had no no chance getting notepad++ on mac osX,
every output i prepared like this utf8_decode()
BOM is meant for MS-windows.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With