'源代码字符集' Vs'执行charset'

时间:2015-08-05 08:18:46

标签: javascript eclipse encoding interpreter ecmascript-5

在javascript世界中,

  

我了解到 Javascript源代码字符集通常是UTF-8(但并非总是如此)。

     

我了解到 Javascript(执行)字符集UTF-16

我如何解释这两个词?

注意:通过使用其他语言,例如java

,答案可以与语言无关。

1 个答案:

答案 0 :(得分:1)

相当不错,大多数源代码都是用utf-8编写的,或者应该是。由于源代码主要是英语,使用ASCII兼容字符,而utf-8在这个字符范围内效率最高,因此有很大的优势。无论如何,它已成为事实上的标准。

JavaScript是在世界其他地方开始使用utf-8之前开发的,因此遵循Java的做法,即对所有字符串使用utf-16,这在当时是非常具有前瞻性的思考。这意味着所有字符串,无论是在源代码中编码,还是以其他方式获得,都将在utf-16中进行(重新)编码。

在大多数情况下,它并不重要。源代码适用于人类,执行字符集适用于机器。但是,事实确实有两个小问题:

  • 如果你的字符串主要是ASCII范围(它们是英文版,甚至是其他使用空格的语言),JavaScript字符串可能会浪费大量空间。
  • 与utf-8一样,utf-16也是可变宽度,但大多数语言中的大多数字符都在正常的2个字节内;但是,如果某些字符扩展到4个字节,JavaScript可能会错误地计算字符串的长度。

除了哪种编码更适合某种特定人类语言的问题之外,其中一种优势没有其他优势。如果最近开发了JavaScript,它可能会对字符串使用utf-8编码。