2016-06-29 1 views
1

내 typescript를 컴파일하고 실행하고 google 크롬에서 페이지를로드하면 google 크롬은 내 자바 스크립트가 북경어라고 생각합니다. 여기Chrome에서 내 JavaScript가 북경어라고 생각합니다

내 .TS는 파일 것 :

<!DOCTYPE html> 
<html> 
<head><title>TypeScript Greeter</title></head> 
<body> 
    <script src="greeter.js"></script> 
</body> 
</html> 

enter image description here

:

var Student = (function() { 
function Student(firstName, middleInitial, lastName) { 
    this.firstName = firstName; 
    this.middleInitial = middleInitial; 
    this.lastName = lastName; 
    this.fullName = firstName + " " + middleInitial + " " + lastName; 
} 
return Student; 
}()); 
function greeter(person) { 
return "Hello, " + person.firstName + person.lastName; 
} 
var user = new Student("Mike", "A", "Harv"); 
document.body.innerHTML = greeter(user); 

가 여기 내 .html 파일입니다 :

여기
class Student { 
fullName: string; 
constructor(public firstName, public middleInitial, public lastName) { 
    this.fullName = firstName + " " + middleInitial + " " + lastName; 
} 
} 


interface Person { 
firstName: string; 
lastName: string; 
} 


function greeter(person: Person) { 
return "Hello, " + person.firstName + person.lastName; 
} 

var user = new Student("Mike", "A", "Harv"); 

document.body.innerHTML = greeter(user); 

내의 .js 파일입니다

편집 : 내의 .js 파일의 인코딩은 나의 JS 파일의 UTF-8

enter image description here

진수 덤프입니다.

enter image description here

+0

일부 보이지 않는 유니 코드 문자가있을 수 있습니다. – Pointy

+6

파일은 제공된 파일과 다른 문자 세트 (인코딩)로 저장됩니다. 기타 : [* 절대적으로 모든 소프트웨어 개발자가 절대적으로, 절대적으로 유니 코드와 문자 집합에 대해 알고 있어야합니다 (변명 없음) *] (http://www.joelonsoftware.com/articles/Unicode.html) –

+0

질문에서 완전히 분리 'Student'가'Person'을 구현하지 않고'greeter'에 넘겨주는 것을 고려해 보면 TS 코드가 컴파일되어서 놀랍습니다. –

답변

1

당신이 (BOM 않고) UTF-8를 디코딩 할 경우 UCS2-LE로 인코딩 된 greeter.js 파일이 나타납니다 볼 수있는 만다린 문자. 나는 utf8로 인코딩 된 파일을 ucs2le로 디코딩하도록 Chrome을 설득하려했지만 관리하지는 못했습니다. 크롬을 포함한 모든 프로그램에서 파일의 시작 부분에 올바른 BOM이있는 경우 UCS2-LE 만 사용합니다. 다음은 스크린 샷에서와 같은 문자입니다

enter image description here

다음 바이트 FF FE 76 61 72 20 53 74 ...는 (이 바이트 FF FE prepended와 함께, 당신의 16 진 덤프과 동일)로 디코딩됩니다.

이 모든 것을 감안할 때 greeter.js 파일 인코딩이 깨졌으며 UCS2 bom이 FF FE이고 utf8로 인코딩 된 자바 스크립트 바이트가 추가됩니다.

0

BOM으로 인코딩 된 UTF-8로 js 파일을 저장하여이 문제를 해결했습니다.

+0

크롬에서 사용하는 언어 설정은 무엇입니까? 기본 언어의 영향을받을 수 있습니다. –

+0

@TamasHegedus 영어 (미국)를 사용하고 있습니다. – Mike

관련 문제