我的代码采用了一个术语的名称,并提取了一个同名的自定义帖子类型的帖子。这很好用。除非标题中有£字符。
e.g。伪代码
$q = new WP_Query (array( 'name' => "Insurance Rating £1K"));
if($q->have_posts()){
// expected path of logic flow
} else {
// nothing was found =s
}
这篇文章确实存在,但未找到,此问题仅影响标题中带有'£'字符的个案。由于Wordpress已经对标题等进行了消毒,所以发生了什么?为什么这不起作用?
编辑:
这是一般情况,并非特定于我的任何代码库。我想知道为什么会发生这种情况以及如何避免它,首先出现的代码库是无关紧要的。所以我不需要替代解决方案,因为我正在寻找为什么它发生了
编辑2:
数据库表正在使用utf8_general_ci
编码。
£字符也按原样保存,而不是html实体,这是phpmyadmin的截图:
答案 0 :(得分:2)
您的PHP文件是什么编码,它是否与数据库的编码匹配?他们需要匹配才能发挥作用。 (检查您的IDE或@Tom提供的this link)
如果失败,请确保该字符不是£
实体而不是文字字符。