Javascript被转换为汉字

时间:2017-01-13 16:15:44

标签: javascript html angularjs

我使用角度1.6.1这个简单的角应用程序。

的index.html

<!DOCTYPE html>
<html ng-app="App">

<head>
    <title>Test</title>

    <script src="bower_components/angular/angular.js"></script>
    <script src="app/app.js"></script>
</head>

<body>
    <div>
        <home></home>
    </div>
</body>
</html>

app.js

(function() {

    'use strict';

    var app = angular.module('App', []);

    app.component('home', {
            template: '<h1>{{$ctrl.head}}</h1><ul><li>1</li><li>2</li></ul>',
            controller: function() {
                var vm = this;

                this.head = "ONE";
            }
        });
})();

这将加载OK并在IE11中正确显示,但无法加载Chrome(55.0.2883.87 beta(64位)或FF(51.0b13(32位))我绝对不知道为什么......

当我点击Chrom Dev Tool的Sources选项卡中的app.js时,源代码就像字符一样奇怪,但是通过Notepad ++查看源码,看起来都很好......?!?!

这是chrome上的devconsole的截图

enter image description here

对于我添加到index.html的每个JS文件,我都能看到相同的问题。 我没有在我的电脑的浏览器中更改任何其他语言环境设置......

我不知道为什么会这样。有人见过这样的事吗?

2 个答案:

答案 0 :(得分:1)

通过键入

在命令行中创建所有文件
echo "" >> app.js

并且这已将编码设置为UCS-2 LE BOM,如Notepad ++中所示,并且由于某些不明原因,Chrome和Firefox无法正确读取文件...

enter image description here

因此,在Notepad ++中将文件转换为UTF-8-BOM(菜单 - &gt;编码 - &gt;转换为UTF-8-BOM)文件已被正确读取并且全部工作...

我仍然感兴趣的是为什么旧的IE设法读取网站确定,但更现代的浏览器失败...

答案 1 :(得分:0)

我有完全相同的问题。在我的例子中,主HTML页面是在localhost中,它是从我的控件中调用外部.js文件。现代版Chrome和Firefox中存在此问题(但在Internet Explorer中不存在)。我发现HTML页面是用Unicode而不是UTF8或ANSI意外创建的。我使用notepad.exe将其保存为ANSI(因为它只用英语)并解决了这个问题。