Angularjs JSON Unicode Characters


Angularjs JSON Unicode Characters

我有一个JSON文件通过php生成:

$JsonObjItems = json_encode($arrObjItems, JSON_PRETTY_PRINT);
$objFile = new 'File('test.json', true);
$objFile->write($JsonObjItems);
$objFile->close();
JSON:

[
    {
        "raw": {
            "id": "2",
            "pid": "0",
            "sorting": "0",
            "tstamp": "1433706234",
            "Alias": "-2",
            "Menu1": "Test (A,C,F)'nTest1, Gr'u00fcn",
            "Menu2": "Test1",
            "From": "1433714400",
            "To": "1434060000",
            "Published": "1"
        },
        "text": {
            "Alias": "-2",
            "Menu1": "Test (A,C,F)'nTest1, Gr'u00fcn",
            "Menu2": "Test1",
            "From": "08.06.2015",
            "To": "12.06.2015",
            "Published": "1"
        },...

我在angularjs/ionic应用程序中解析它:

.controller('GetJson', function ($scope, $http) {
    $http.get("test.json")
        .success(function (data) {
        $scope.all = data;    
        $scope.menu1 = data[0].text.Menu1;  
    });   
})

把它放在这里:

<ion-view view-title="test" ng-controller="GetJson">
<ion-content class="padding">
    {{menu1}}
</ion-content>
</ion-view>

生成如下输出:

Test &#40;A,C,F&#41;'nTest1, Gr'u00fcn

我要的是:

Test (A,C,F)
Test1, 
Grün

我该怎么做呢?在javascript json编码或在php生成json?我在php中尝试了这些东西,但我没有让它工作:

$JsonObjItems = json_encode($arrObjItems, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE);

编辑:

与"$sce。trustashhtml "过滤它在这里工作:https://jsfiddle.net/uPw2U/163/但不用表达:https://jsfiddle.net/gstcppgt/3/

在这两种情况下,'n换行符被忽略,我是否必须以某种方式使用nl2br() ?我在这里试了一下:没有表达式,它可以工作:https://jsfiddle.net/uPw2U/170/

与表达式,它不:https://jsfiddle.net/gstcppgt/11/

{{}}有什么问题吗?

如果变量有html内容,则需要使用$sce。trustAsHTML代替表达式。

对于换行符,可以使用style="white-space: pre;"