我有一段代码可以解析网页上的一些内容,但我无法弄清楚为什么它会在度数符号前面插入Â
。
我已经在php解释器中复制了我在应用程序中看到的内容:
$ php -a
php > $dom=new domDocument;
php > $dom->loadHTML("<ol><li>What if I use a ° symbol here...</li></ol>");
php > $xpath = new DOMXpath($dom);
php > $steps = $xpath->query("//li");
php > foreach($steps as $step) { echo $step->nodeValue; }
What if I use a ° symbol here...
答案 0 :(得分:1)
问题是DOMDocument::loadHTML
的默认编码是ISO-8859-1,而输入是UTF-8编码的字符串。您需要告诉DOMDocument您正在使用不同的字符集。
你可以用
做到这一点$dom->loadHTML("<?xml encoding=\"utf-8\" ?><ol><li>What if I use a ° symbol here...</li></ol>");
答案 1 :(得分:0)
可能是编码问题? 通常,DomDocument使用UTF-8。
但浏览器在显示页面时往往会使用不同的编码。要强制使用UTF-8编码,您可以添加类似
的标记 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" >
到你的头元素