0

我在 Wordpress 博客上运行 SQL 查询以获取帖子的 json 提要。这是我的代码: http: //pastebin.com/jvaM9ySr

它工作正常,但一些帖子网址正在通过我认为是 UTF-8 特殊字符,如

ranking-of-the-country%e2%80%99s-101-best-desserts

我猜是一个博客编辑贴了一个花哨的撇号。

其他示例在 url 中间有 %e2%84%a2 用于商标符号,甚至 %cf%83 用于希腊 sigma 字母。

我想将这些转换为显示 json 提要中的实际特殊字符。

我正在使用它来匹配 Google Analytics API 中的 url,并且相应的 Analytics url 包含特殊字符本身,而不是如下代码:

 ranking-of-the-country’s-101-best-desserts

因此,由于这个特殊字符问题,这几个案例不匹配。

我尝试在 pastebin 中的代码的各个位置使用 utf8_encode 和 utf8_decode ,但没​​有成功。

有人有想法么?谢谢!

4

2 回答 2

0

所有你需要的是

$text = "ranking-of-the-country%e2%80%99s-101-best-desserts";
echo 'TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL;
于 2012-11-27T18:23:28.850 回答
0

我在另一种编程语言中遇到过和你类似的问题。

这不是utf8 encode但是url encode

尝试使用:

urlencode(string)

urldecode(string)

在 2 种情况下(使用%char正确的 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;   
    }

或区分代码末尾的打印(类似于之前的代码):为数组中的每个变量进行适当的打印(当您“捕获”“url”时进行解码),在这里:

print strip_tags(json_encode($rows));
于 2012-11-27T18:24:26.223 回答