International characters in XUL JavaScript

  • 리비전 슬러그: International_characters_in_XUL_JavaScript
  • 리비전 제목: International characters in XUL JavaScript
  • 리비전 아이디: 193608
  • 제작일시:
  • 만든이: Wafe
  • 현재 리비전인가요? 아니오
  • 댓글 영문판 링크 추가

리비전 내용

개요

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 ({{mediawiki.interwiki('wikipedia', '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 파일에서는 사용할 수 없는 방법입니다.

{{ wiki.languages( { "en": "en/International_characters_in_XUL_JavaScript", "fr": "fr/Caract\u00e8res_internationaux_dans_du_JavaScript_XUL", "ja": "ja/International_characters_in_XUL_JavaScript" } ) }}

리비전 소스

<h3 name=".EA.B0.9C.EC.9A.94"> 개요 </h3>
<p><a href="ko/Firefox_1.5">Firefox 1.5</a>와 다른 어플리케이션에서 사용되는 <a href="ko/Gecko">Gecko</a> 1.8에서는 <a href="ko/XUL">XUL</a> 파일에서 로드되는 <a href="ko/JavaScript">JavaScript</a> 파일에 non-ASCII 캐릭터를 포함시킬 수 있습니다.
</p><p>이는 세계에서 사용하는 모든 언어의 모든 문자를 스크립트 파일에서 사용할 수 있다는 의미입니다. 예를 들어 스크립트 파일에 이런 내용을 포함시킬 수 있습니다.
</p>
<pre class="eval">var text = "Ein schönes Beispiel eines mehrsprachigen Textes: 日本語";
</pre>
<p>일본어와 독일어 문자를 섞어 쓴 것입니다.
</p><p>이전 버전에서는 XUL에서 로드되는 JS 파일은 로컬에서나 원격에서나 항상 <a class="external" href="http://en.wikipedia.org/wiki/ISO_8859-1#Code_table">ISO-8859-1</a> (Latin-1) 인코딩으로 해석되었습니다. <a href="#Cross-version_compatibility">아래쪽에서 논의할</a> 유니코드 이스케이프는 항상 동작했습니다.
</p>
<h3 name="Gecko_1.8_.EC.9D.B4.ED.9B.84_.EB.B2.84.EC.A0.84.EC.97.90.EC.84.9C_.EB.AC.B8.EC.9E.90_.EC.9D.B8.EC.BD.94.EB.94.A9.EC.9D.B4_.EA.B2.B0.EC.A0.95.EB.90.98.EB.8A.94_.EB.B0.A9.EB.B2.95"> Gecko 1.8 이후 버전에서 문자 인코딩이 결정되는 방법 </h3>
<p>JavaScript 파일이 <code>chrome://</code> URL에서 로드될 때, 스크립트의 인코딩을 결정하는데 <a href="ko/Byte_Order_Mark">Byte Order Mark</a> ({{mediawiki.interwiki('wikipedia', 'Byte_Order_Mark', 'BOM')}})이 사용됩니다. 이외의 경우에는 XUL 파일(<code>&lt;?xml?&gt;</code> 태그의 <code>encoding</code> 속성으로 지정 가능)과 같은 문자 인코딩을 사용합니다. XUL 파일의 기본 인코딩은 UTF-8이며, UTF-8은 사실상 세계의 모든 문자를 표현할 수 있습니다. 
</p><p>스크립트 파일이 HTTP를 통해서 로드된다면 HTTP 헤더에 <code>Content-Type</code> 헤더의 일부로 캐릭터 인코딩이 포함될 수 있습니다. 예를 들면 이런 형식입니다.
</p>
<pre class="eval">Content-Type: application/x-javascript; charset=UTF-8
</pre>
<p>문자 집합(charset)이 지정되지 않으면 앞의 경우와 동일하게 캐릭터셋이 결정됩니다.
</p>
<h3 name=".EB.B2.84.EC.A0.84_.EA.B0.84_.ED.98.B8.ED.99.98.EC.84.B1"> 버전 간 호환성 </h3>
<p>Gecko 1.8과 이전 버전에서 동일한 코드를 사용하려고 한다면 ASCII 문자만을 사용해야 합니다. 그러나 <a href="ko/Core_JavaScript_1.5_Guide/Unicode#Unicode_Escape_Sequences">유니코드 이스케이프</a>를 사용할 수는 있습니다. – 앞에서 나온 예제를 유니코드 이스케이프를 사용해서 표현하면 다음과 같습니다. 
</p>
<pre class="eval">var text = "Ein sch\u00F6nes Beispiel eines mehrsprachigen Textes: \u65E5\u672C\u8A9E";
</pre>
<p>이 방법 대신 <a href="ko/NsIStringBundle">nsIStringBundle</a>이나 <a href="ko/XUL_Tutorial/Property_Files">XUL &lt;stringbundle&gt; 요소</a>를 통해 속성 파일(property files)을 사용할 수도 있습니다. 그렇게 하면 XUL을 지역화할 수 있습니다. 그러나 권한을 얻을 수 있는 코드 즉, <a href="ko/Extensions">확장 기능</a>의 코드에서만 가능하고, 웹으로 로드되는 XUL 파일에서는 사용할 수 없는 방법입니다.
</p>{{ wiki.languages( { "en": "en/International_characters_in_XUL_JavaScript", "fr": "fr/Caract\u00e8res_internationaux_dans_du_JavaScript_XUL", "ja": "ja/International_characters_in_XUL_JavaScript" } ) }}
Revert to this revision