无法使用javascript和json在我的静态网站上显示中文字符

时间:2014-06-25 22:18:08

标签: javascript html json angularjs

我有2个jsons:

cn.json:

{
"id_contactus": "联系我们"
}

和另一个: en.json:

{
"id_contactus": "Contact Us"
}

我有angular-js选择一个json文件来读取,具体取决于用户输入:

HomeControllers.controller('HomeLanCtrl', function($scope, $http) {
$http.get($lan.concat(".json")).success(function(data) {
    $scope.text = data;
});
});

最终,我的HTML看起来像:

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body ng-controller="HomeLanCtrl">
    <li class="header_list_end"><a href="contactus.html">{{text.id_contactus}}</a></li>
</body>

如果我使用en,这意味着加载en.json,网页显示正确;但是,如果我选择加载cn.json的cn,那么网页会显示

��ϵ����

而不是正确的字符。问题是,在html中如果我不使用javascript但直接使用中文字符:

    <li class="header_list_end"><a href="contactus.html">联系我们</a></li>

这会有用......

对于为什么它不起作用的任何评论都非常感谢!!!!

1 个答案:

答案 0 :(得分:1)

我会说你的问题来自你的json文件编码。您使用什么编辑器来创建文件?你能确定它是用UTF8编码的吗?

关于数据绑定和编码已经存在讨论,但我不是Angular的专家,所以我不知道它是否相关。 Use ng-bind-html。它绝对不可用,因为你没有像他们那样使用绑定,但是可能有一种方法可以让你的绑定理解HTML结构而不是纯文本。