2010-10-28 119 views
0

我有一個巨大的文本,我不斷收到json格式。當我收到他們在json中,對於一些特殊字符,如'&複製,我收到他們不同。我使用php和json將json轉換爲html。例如,我收到在文本中替換的特殊字符數組,php,json

'as \ c101d(single quote ) 「作爲\ c201d(開引號) 」作爲\ c202d(收盤報價)

我打算讓所有的」,「到一個數組,並使用數組中的文本替換\ c101d值'或類似的東西,以便更容易在一個命令中檢查整個文本,正確替換所有特殊字符並正確顯示在我的網頁上。

也許有些像$ arr = array(「\ c101d」=>「'」,「\ c202d」=>「」「),然後在$ text變量上調用這個數組來檢查字符類似於數組並做字符串替換。 我有這個想法,但編碼明智我如何做到這一點?感謝所有幫助。

+0

你打算如何處理文本? – sunn0 2010-10-28 22:17:46

+0

我將在html頁面中顯示它,但由於字符是\ c101d,它在html頁面上顯示出奇怪。 – 2010-10-28 23:04:44

+0

也許NYTimes feed有一個類似於UTF-8的編碼,你的網站顯示它是ISO 8859-1 – Coquevas 2010-10-29 09:27:50

回答

1

解決

那麼這段代碼解決了所有問題,包括','和所有其他怪異字符。

$newtext=mb_convert_encoding($text, 'HTML-ENTITIES','UTF-8'); 
1

¿您是否使用json_encode()的不同選項標誌?

對於字符串替換你應該使用strtr()

0

str_replace應該做你想做的事

該函數返回字符串或與搜索中出現的所有受試者與給定替換替換值的陣列。

str_replace函數將數組作爲可能的參數搜索和替換,所以你可以這樣做:

$search = array('\'' , '"', ...); 
$replace = array('\c101d', '\c201d', ...); 
$text = str_replace($search, $replace, $text); 
+0

嗯......我試過你給的東西,但它似乎沒有改變任何東西。那麼這就是發生了什麼...當我看着JSON,我回來了,我可以看到特殊字符是\ u201c,但在HTML頁面上顯示爲「,我無法取代它們!僅供參考,我以JSON格式獲取了NYTIMES最近的新聞API。很明顯,我已經交換了$ search和$ replace,因爲我的代碼正在執行我正在嘗試執行的代碼。 – 2010-10-28 23:16:44