2012-11-27 17 views
0

我在Wordpress博客上運行SQL查詢以獲取郵件的json提要。這裏是我的代碼:http://pastebin.com/jvaM9ySr轉換PHP中的SQL查詢的URL中的UTF-8字符

它工作正常,但一些POST網址的是什麼,我認爲未來通過的是UTF-8等特殊字符

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

,我猜看中,粘貼在博客編輯器撇號。

其他示例在商標符號的網址中間有%e2%84%a2,甚至希臘西格瑪字母的%cf%83。

我想轉換這些以顯示實際的特殊字符在json feed中。

我使用這match the urls in the Google Analytics API和相應的分析網址中包含特殊字符本身,而不是這樣的代碼:

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

所以這些少數情況下不會因爲這個特殊的人品問題匹配。

我試圖在pastebin中的代碼中的各個地方使用utf8_encode和utf8_decode,但沒有運氣。

任何人有任何想法?謝謝!

回答

0

我已經在其他的編程語言有一個像你類似的問題。

這不是utf8 encode而是url encode

嘗試使用:

urlencode(string) 

urldecode(string) 

在2例(與解碼所有與正確的UTF炭的%char變化)。

在這裏你可以找到更多的信息和示例:http://php.net/manual/en/function.urlencode.php

UPDATE: 爲您的代碼:我沒有測試過,但你必須或者當您存儲響應值這裏

解碼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)); 
+0

'echo urldecode(「國家%e2%80%99s-101-best-desserts」);'完美的作品!謝謝! –

+0

你介意看看我的[代碼](http://pastebin.com/jvaM9ySr)並讓我知道你認爲'urldecode();'應該去哪裏?無論我嘗試將json feed轉換爲NULL還是根本不做任何事情。 –

+0

我已更新答案 – damoiser

0

所有你需要的是

$text = "ranking-of-the-country%e2%80%99s-101-best-desserts"; 
echo 'TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL; 
+0

嘿,謝謝你的回答,但我不認爲這會奏效。當我把你的兩行寫入http://sandbox.onlinephpfunctions.com/時,它只是迴應原始字符串? –