2012-05-14 22 views
1

代碼不工作陣列以JSON的轉換在PHP不工作

$data['price']='£1'; 

print_r(json_encode($data)); 

結果是

{"price":"null"} 

我需要像導致

{"price":"£1"} 
+0

你不編碼同一陣列..檢查你的代碼.. –

+4

嘗試用'£更換£'''看起來像一個 –

+0

相關:http://stackoverflow.com/questions/3694346/values-in-utf-8-being-encoded-as-null-in-json –

回答

3

試試這個:

$data['price']='£1'; 
print_r(json_encode($data)); 
+1

在技術上不應該是'£ 1'? – Ben

+1

你是對的。它應該是'£ 1' –

+0

@是的,應該是。因爲我沒有試過';'我得到了同樣的結果..所以我認爲這是沒有必要的:) thnk你tho –

0

您還沒有編碼同一陣列..你正在存儲價值$ dat和編碼$數據....

檢查你的代碼..

+1

他正確地獲得了print_r,所以他必須在這裏發佈他的代碼錯別字 –

-2

嘗試這樣的:

$data['price']="$1"; 

print_r(json_encode($data)); 

我的結果:

{"price":"$1"} 
+1

他希望英鎊符號,而不是美元符號 – Darvex

+0

當然,但我沒有在我的鍵盤上英鎊:) – Hataru

+1

@Hataru這是一種愚蠢的回覆然後因爲$是在ASCII表,並不會導致任何UTF8 JSON編碼問題.. – Ben

0

恐怕你不能£編碼爲JSON不幸。 你可以嘗試£在它的地方,它會工作。

0

試試這個

$data['price'] = htmlentities('£1', ENT_COMPAT, 'utf-8');