有没有办法通过phpquery :: newDocument运行这个html标记后修复显示不正确的字符?在使用phpquery创建新文档后,原始文档中的-Classics和现代Woman之间会出现双引号。
//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);
原始输出: 曼谷史密斯先生庆祝“现代女性经典”。
新文件输出:曼谷史密斯先生与现代女性一起庆祝“经典”。
答案 0 :(得分:25)
UTF-8 without BOM
编码保存页面。 在脚本顶部添加此标题:
header("Content-Type: text/html; charset=UTF-8");
[编辑]:如何在没有BOM的情况下将文件保存为UTF-8:
在OP请求中,您可以在Windows上执行以下操作:
答案 1 :(得分:3)
我有同样的问题但是当我添加
时ob_start();
到第一行
ob_end_flush();
到最后它似乎正在工作
答案 2 :(得分:1)
你在<head>
元素中有这个:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
下一个课程是使用HTML实体来显示这些字符。
答案 3 :(得分:1)
我使用phpQuery类时遇到了同样的问题。问题如上所述,在最高投票答案中 - 脚本文件保存为带有BOM的UTF8。
因为我没有机会在mac osX上获得notepad ++,
我准备的每个输出都像utf8_decode()
BOM适用于MS-windows。