2010-11-18 100 views
4

這是我的JSON文件的一部分,我通過Twitter的API獲得:JSON從Twitter API包含 u2019

「文」:「科學家發現爲研究分子的新方法:女王\ NEWLINENEWLINE此功能的研究人員已經發現了學習方法... http://bit.ly/chbweE

我在爲我的項目使用PHP。

使用json_decode函數後,\ u2019被轉換爲',這基本上是非常煩人的。

我試過使用$raw_json = preg_replace("u2019","'",$raw_json),但後來json_decode函數返回NULL。

有沒有其他的方法可以將\ u2019轉換成'?

感謝


編輯:

這是怎麼了獲得JSON:

// create curl resource 
    $ch = curl_init(); 

    // set url 
    curl_setopt($ch, CURLOPT_URL, "http://search.twitter.com/search.json?q=from%3Agizmodo&rpp=10"); 

    //return the transfer as a string 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

    // $output contains the output string 
    $raw_json = curl_exec($ch); 

    // close curl resource to free up system resources 
    curl_close($ch); 
+0

請提供方法/函數描述你如何讓通過Twitter API的內容,概括地說,就是一個編碼問題,很多原因可以引入亂碼文本,比如頁面編碼 – ajreal 2010-11-18 05:07:14

+0

我使用的是Search API ...所以http://search.twitter.com/search.json – AlexBrand 2010-11-18 05:08:02

+0

很多使用twitter,curl,fopen的方法,套接字...可以更具體嗎?或者輸入特定的代碼來抓取內容 – ajreal 2010-11-18 05:15:05

回答

6

這可能是與你使用的字符集問題的輸出。如果你outputing到HTML頁面,嘗試添加下面的元標記你的頭部分:

<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> 
+0

謝謝,你是英雄。你不知道這行代碼對我的網站有多重要。如果您想查看,請點擊這裏鏈接:http://bloging.net16.net/](http://bloging.net16.net/) – IchHabsDrauf 2016-07-04 08:50:29

0

你錯過的正則表達式定界符在preg_replace/.../。嘗試:

$raw_json = preg_replace("/u2019/","'",$raw_json); 

同時,爲了更安全,我只更換那些實際上逃避字符的實例:

$raw_json = preg_replace("/\\\\u2019/","\\'",$raw_json); 
+0

json_decode($ raw_json)返回false – AlexBrand 2010-11-18 05:13:05

+0

在這個特殊的實例中使用'preg_replace'而不是'str_replace'有什麼原因嗎? – 2012-03-20 16:02:13

+0

@beanland:不是,我只是使用了OP在問題中發佈的內容,但是'str_replace'會很好。 – casablanca 2012-03-21 04:51:25