D3.js:"Uncaught SyntaxError:Unexpected token ILLEGAL"?

Ric*_*ard 76 javascript d3.js

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

<html>
<head>
<title>D3 Sandbox</title>
<style>
</head>
<body>
<script src="/d3.v3.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

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

Uncaught SyntaxError: Unexpected token ILLEGAL: line 2
Run Code Online (Sandbox Code Playgroud)

它不喜欢文件开头pi和e符号.Errrr ......我能做些什么呢?我正在使用python的SimpleHTTPServer提供文件.

更新:是的我知道我可以链接到CDN版本,但我更愿意在本地提供文件.

Lau*_*gou 132

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

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

D3在非UTF8文档中包含UTF-8符号(如π)invalids.

  • <meta charset ="UTF8">为我做了诀窍,由于某些原因,较长的版本没有.谢谢 (5认同)
  • 你能评论为什么这是必要的吗? (5认同)
  • BBischof:D3在非UTF8文档中包含UTF-8符号(如π)invalids (3认同)

T.J*_*der 9

这听起来像编码问题.我建议绝对最低限度每个软件开发人员必须首先了解Unicode和字符集(没有借口!).尽管有一些居高临下的标题,但它包含一些非常有用的信息.具体来说,听起来您的服务器正在d3.v3.js使用错误的编码来提供文件.


hew*_*ism 6

添加'charset ="utf-8"'

<script src="/d3.v3.js" charset="utf-8"></script>
Run Code Online (Sandbox Code Playgroud)


Nat*_*bna 5

我尝试在doc和script标签中设置charset,但Chrome似乎并不关心.不确定我是否做错了什么.

我确实通过首先使用--ascii-only选项通过uglify运行它来找到成功.

更新:原来我在Chrome中的视图 - >编码设置不是自动检测,而是一些西方编码.不知道为什么,但改变解决了这个问题.荒谬的是,该设置将胜过脚本标签上的charset属性.考虑到用户可能处于相同的情况而无法弄明白,我仍然会使用uglify来确保成功.