我遇到了一个wordpress feed的编码问题,我似乎无法弄明白。
我正在使用DOMDocument->加载我的Feed,但后来执行了一个file_get_contents,现在正在使用 - > XMLload,结果相同。我做了XMLload,所以如果需要我可以操作feed。
我正在寻找的正确输出是- ‘ £
。
如果我只是从Xpath查询回显,我得到- ‘ £
。
如果我用utf8_decode回音,我得到- ? £
。
好多了,但问号应该是撇号。
如果我在加载DomDocument的每个节点时循环,我会得到正确的输出。所以它似乎在XPath中处理不正确。
有什么想法吗?
Feed是http://shredeasy.com/blog/category/news/feed
这是被调用的函数:
function getPostsInCategory($feed=NULL){
if(is_null($feed)){ echo "Wrong Usage. Need a valid Category Feed. Most likely from getCategories()."; return false; }
$feedx = file_get_contents($feed);
$xml = new DOMDocument();
$xml->loadXML($feedx);
//$this->showDOMNode($xml);
//$xml->load($feed);
$xpath = new DomXPath($xml);
$xpath->registerNamespace("content", "http://web.resource.org/rss/1.0/modules/content/");
$cat = array();
foreach($xml->getElementsByTagName('item') as $c){
$elements = array();
$elements["title"] = $xpath->query("title", $c)->item(0)->nodeValue;
echo utf8_decode($elements["title"]);
我一直在努力解决这个问题几个小时,我一直在回到错误的地方。
感谢您的帮助!
你知道的,似乎撇号正在变成问号....天哪!我不知道这是否是唯一的问题。
答案 0 :(得分:1)
回显的字符串以UTF-8编码。
htmlspecialchars
,第三个参数设置为“UTF-8”。iconv
和mb_convert_encoding
。