Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

International characters in XUL JavaScript

개요

Firefox 1.5와 다른 어플리케이션에서 사용되는 Gecko 1.8에서는 XUL 파일에서 로드되는 JavaScript 파일에 non-ASCII 캐릭터를 포함시킬 수 있습니다.

이는 세계에서 사용하는 모든 언어의 모든 문자를 스크립트 파일에서 사용할 수 있다는 의미입니다. 예를 들어 스크립트 파일에 이런 내용을 포함시킬 수 있습니다.

var text = "Ein schönes Beispiel eines mehrsprachigen Textes: 日本語";

일본어와 독일어 문자를 섞어 쓴 것입니다.

이전 버전에서는 XUL에서 로드되는 JS 파일은 로컬에서나 원격에서나 항상 ISO-8859-1 (Latin-1) 인코딩으로 해석되었습니다. 아래쪽에서 논의할 유니코드 이스케이프는 항상 동작했습니다.

Gecko 1.8 이후 버전에서 문자 인코딩이 결정되는 방법

JavaScript 파일이 chrome:// URL에서 로드될 때, 스크립트의 인코딩을 결정하는데 Byte Order Mark (BOM)이 사용됩니다. 이외의 경우에는 XUL 파일(<?xml?> 태그의 encoding 속성으로 지정 가능)과 같은 문자 인코딩을 사용합니다. XUL 파일의 기본 인코딩은 UTF-8이며, UTF-8은 사실상 세계의 모든 문자를 표현할 수 있습니다.

스크립트 파일이 HTTP를 통해서 로드된다면 HTTP 헤더에 Content-Type 헤더의 일부로 캐릭터 인코딩이 포함될 수 있습니다. 예를 들면 이런 형식입니다.

Content-Type: application/x-javascript; charset=UTF-8

문자 집합(charset)이 지정되지 않으면 앞의 경우와 동일하게 캐릭터셋이 결정됩니다.

버전 간 호환성

Gecko 1.8과 이전 버전에서 동일한 코드를 사용하려고 한다면 ASCII 문자만을 사용해야 합니다. 그러나 유니코드 이스케이프를 사용할 수는 있습니다. – 앞에서 나온 예제를 유니코드 이스케이프를 사용해서 표현하면 다음과 같습니다.

var text = "Ein sch\u00F6nes Beispiel eines mehrsprachigen Textes: \u65E5\u672C\u8A9E";

이 방법 대신 nsIStringBundle이나 XUL <stringbundle> 요소를 통해 속성 파일(property files)을 사용할 수도 있습니다. 그렇게 하면 XUL을 지역화할 수 있습니다. 그러나 권한을 얻을 수 있는 코드 즉, 확장 기능의 코드에서만 가능하고, 웹으로 로드되는 XUL 파일에서는 사용할 수 없는 방법입니다.

문서 태그 및 공헌자

 이 페이지의 공헌자: teoli, Wafe
 최종 변경: teoli,