我在Wordpress博客上运行SQL查询以获取帖子的json提要。这是我的代码:http://pastebin.com/jvaM9ySr
它工作正常,但是一些帖子的网址是我认为的UTF-8特殊字符,如
ranking-of-the-country%e2%80%99s-101-best-desserts
我猜博客编辑器粘贴在一个花哨的撇号中。
其他示例在商标符号的url中间有%e2%84%a2,而希腊sigma字母甚至%cf%83。
我想转换它们以显示json feed中的实际特殊字符。
我将此用于match the urls in the Google Analytics API,相应的Google Analytics网址包含特殊字符本身,而不是代码如下:
ranking-of-the-country’s-101-best-desserts
所以由于这个特殊的字符问题,这几个案例不匹配。
我试过在pastebin中的代码中的各个地方使用utf8_encode和utf8_decode而没有运气。
任何人都有任何想法?谢谢!
答案 0 :(得分:0)
你需要的只是
$text = "ranking-of-the-country%e2%80%99s-101-best-desserts";
echo 'TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL;
答案 1 :(得分:0)
我在另一种编程语言中遇到过与你类似的问题。
这不是utf8 encode
,而是url encode
。
尝试使用:
urlencode(string)
和
urldecode(string)
在2个案例中(使用正确的utf字符解码所有%char
更改)。
您可以在此处找到更多信息和示例:http://php.net/manual/en/function.urlencode.php
<强>更新强>: 对于你的代码:我还没有测试过,但你必须在这里存储响应值时解码url
while($r = mysql_fetch_assoc($sth)) {
if $r is a url
$rows = decode($r);
else
$rows[] = $r;
}
OR 区分代码末尾的打印(类似于之前的代码):为数组中的每个变量做适当的打印(当你“抓住”“url”进行解码时),这里:
print strip_tags(json_encode($rows));