2016-05-22 51 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的答案是最好的答案。 –