0

WordpressブログでSQLクエリを実行して、投稿のjsonフィードを取得しています。これが私のコードです:http: //pastebin.com/jvaM9ySr

正常に動作しますが、投稿URLの一部は、UTF-8の特殊文字のようなものであると私は思います。

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

ここで、ブログの編集者が派手なアポストロフィを貼り付けたと思います。

他の例では、商標記号のURLの中央に%e2%84%a2があり、ギリシャ語のシグマ文字の場合は%cf%83です。

これらを変換して、jsonフィードの実際の特殊文字が何であるかを示したいと思います。

これを使用してGoogleAnalyticsAPIのURLを照合していますが、対応するAnalytics URLには特殊文字自体が含まれており、次のようなコードは含まれていません。

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

したがって、この特殊文字の問題のため、これらのいくつかのケースは一致しません。

運が悪かったので、ペーストビンにあるコードのさまざまな場所で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 encodeurl encode

使用してみてください:

urlencode(string)

urldecode(string)

%char2つの場合(正しい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 に答える