2016-05-22 90 views
1

我有一個php頁面生成json從mysql表中提取值。 一切,除非我有一個包含歐元符號(如「20,00€」)的歐元符號在我的JSON作爲\ u20ac顯示值精...json編碼€符號

像這樣:

[ 
    { 
    "id": "535", 
    "Name": "Pluto", 
    "fare": "\u20ac 20,00" 
    } 
] 

在評估這個json的頁面顯示爲「€20,00」,所以這很好,但我真的希望它在json字符串本身中也顯示相同。

任何提示?

回答

1

多字節可以 - 只要它們不是控制字符 - 可以字面顯示或轉義爲\uXXXX,兩種表示都是正確的。如果你喜歡字面上表示,如果你使用PHP創建JSON,那麼你需要傳遞正確的選項json_encode: Parameters

你正在尋找的選項JSON_UNESCAPED_UNICODE

編碼多字節的Unicode字符字面(默認是以\ uXXXX格式轉義)。自PHP 5.4.0起可用

+0

太好了!簡潔並注重:-) 我還沒有使用JSON_PRETTY_PRINT選項,我不知道如何將這兩者結合在一起。發現正確的方法是這樣的: json_encode($ myArr,JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); 只是說如果有人看這個。 –

1

這是一個非常簡單的例子。 當我知道你想要什麼時,我可以完成它。

var json = [ 
 
    { 
 
    "id": "535", 
 
    "Name": "Pluto", 
 
    "fare": "\u20ac 20,00" 
 
    } 
 
]; 
 

 
$(function(){$('#screen').html(json[0].fare);});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div id='screen'></div>

這個例子更完美: https://jsfiddle.net/a3dmorteza/x7fwto5L/

+0

我的問題不在於解析和顯示值。 由於json的優點之一是人類可讀性,我只是希望將歐元符號作爲文字插入到我的json數據中,而不是轉義。 無論如何謝謝你的回覆,你解析json的方式給了我一些其他的提示:-) –

+0

我現在明白你的問題,我認爲@t.niese的答案是最好的答案。 –