D3.js:“未捕获的SyntaxError:意外的令牌非法”?

我刚刚从d3js.org (链接到zip文件) 下载了D3.js,解压缩了它,并在以下HTML页面中引用它:

<html> <head> <title>D3 Sandbox</title> <style> </head> <body> <script src="/d3.v3.js"></script> </body> </html> 

但是当我加载这个页面,我的控制台(在Chrome中)给我这个错误:

 Uncaught SyntaxError: Unexpected token ILLEGAL: line 2 

它不喜欢文件开头的pi和e符号 。 Errrr …我能做些什么呢? 我用python的SimpleHTTPServer来提供这个文件。

更新:是的,我知道我可以链接到一个CDN版本,但我更喜欢在本地提供文件。

尝试在HTML主机文档上指定UTF-8字符集:

<meta http-equiv="content-type" content="text/html; charset=UTF8">

这听起来像是编码问题。 我build议绝对最小每个软件开发人员绝对,积极必须知道Unicode和字符集(没有借口!) 。 尽pipe标题有些屈尊,但它包含了一些非常有用的信息。 具体来说,这听起来像你的服务器正在为错误的编码d3.v3.js文件。

添加'charset =“utf-8”'

 <script src="/d3.v3.js" charset="utf-8"></script> 

我尝试在文档和脚本标记中设置字符集,但Chrome似乎并不在意。 不知道如果我做错了什么。

我通过首先使用–ascii-only选项运行uglify来获得成功。

更新:原来我在Chrome中的查看 – >编码设置不是在自动检测,但一些西方编码。 不知道为什么,但改变,解决了这个问题。 可笑的是,这种设置将胜过脚本标签上的字符集属性。 考虑到用户可能处于相同的状况,无法弄清楚,我仍然会使用uglify来确保成功。

检查所有string连接之间是否有加号,如果不这样会产生错误。