IT TIP

D3.js :“Uncaught SyntaxError : Unexpected token ILLEGAL”?

itqueen 2020. 10. 18. 19:55
반응형

D3.js :“Uncaught SyntaxError : Unexpected token ILLEGAL”?


방금 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 기호가 마음에 들지 않습니다 . 어 ... 이거 어떻게해야하나요? 파이썬의 SimpleHTTPServer로 파일을 제공하고 있습니다.

업데이트 : 예, CDN 버전에 연결할 수 있다는 것을 알고 있지만 파일을 로컬로 제공하는 것을 선호합니다.


HTML 호스트 문서에 UTF-8 문자 세트를 지정해보십시오.

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

D3에는 UTF8이 아닌 문서에 유효하지 않은 UTF-8 기호 (예 : π)가 포함되어 있습니다.


인코딩 문제인 것 같습니다. 나는 절대적으로 모든 소프트웨어 개발자에게 절대적으로 유니 코드와 문자 세트에 대해 알아야만한다 (변명은 없다!) . 다소 소박한 제목에도 불구하고 매우 유용한 정보가 포함되어 있습니다. 특히 서버가 d3.v3.js잘못된 인코딩으로 파일을 제공하는 것 같습니다.


'charset = "utf-8"'추가

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

문서와 스크립트 태그 자체에서 문자 집합을 설정하려고 시도했지만 Chrome은 신경 쓰지 않는 것 같습니다. 내가 뭔가 잘못하고 있는지 확실하지 않습니다.

먼저 --ascii-only 옵션을 사용하여 uglify를 실행하여 성공했습니다.

업데이트 : Chrome의 View-> Encoding 설정이 자동 감지가 아니라 일부 서양 인코딩으로 밝혀졌습니다. 이유는 확실하지 않지만 변경하면 문제가 해결되었습니다. 그 설정이 스크립트 태그에서 바로 문자셋 속성을 능가한다는 것은 어리석은 일입니다. 사용자가 같은 상황에 있고이를 파악하지 못할 수도 있다는 점을 감안하면 여전히 uglify를 사용하여 성공을 보장 할 것입니다.


모든 문자열 연결 사이에 더하기 기호가 있는지 확인하십시오. 그렇지 않으면이 오류가 생성됩니다.

참고 URL : https://stackoverflow.com/questions/15237073/d3-js-uncaught-syntaxerror-unexpected-token-illegal

반응형