'Source code charset' 比 'Execution charset'
'Source code charset' Vs 'Execution charset'
在javascript世界中,
I learnt that Javascript source code charset is usually UTF-8
(but not always).
I learnt that Javascript (execution) charset is UTF-16
.
如何解释这两个术语?
注意:可以通过使用另一种语言如 java
来给出与语言无关的答案
很好,大多数源代码是用 utf-8 编写的,或者应该是。由于源代码大部分是英文,使用ASCII兼容字符,而utf-8在这个字符范围内效率最高,有很大的优势。不管怎样,它已经成为了事实上的标准。
Java脚本是在世界其他地方使用 utf-8 之前开发的,因此它遵循 Java 对所有字符串使用 utf-16 的做法,这是非常前瞻性的当时。这意味着所有字符串,无论是在源代码中编码,还是通过其他方式获得,都将被(重新)编码为 utf-16。
在大多数情况下它并不重要。源代码是给人类的,执行字符集是给机器的。然而,事实确实有两个小问题:
- Java脚本字符串可能会浪费很多 space 如果您的字符串主要是 ASCII 范围(它们将是英语,甚至是使用 spaces 的其他语言).
- 与 utf-8 一样,utf-16 也是可变宽度的,尽管大多数语言中的大多数字符都在正常的 2 个字节内;但是 Java如果某些字符扩展到 4 个字节,脚本可能会错误计算字符串的长度。
除了哪种编码更适合特定人类语言的问题,没有其他优势。如果 Java脚本是最近开发的,它可能会使用 utf-8 编码字符串。
在javascript世界中,
I learnt that Javascript source code charset is usually
UTF-8
(but not always).I learnt that Javascript (execution) charset is
UTF-16
.
如何解释这两个术语?
注意:可以通过使用另一种语言如 java
很好,大多数源代码是用 utf-8 编写的,或者应该是。由于源代码大部分是英文,使用ASCII兼容字符,而utf-8在这个字符范围内效率最高,有很大的优势。不管怎样,它已经成为了事实上的标准。
Java脚本是在世界其他地方使用 utf-8 之前开发的,因此它遵循 Java 对所有字符串使用 utf-16 的做法,这是非常前瞻性的当时。这意味着所有字符串,无论是在源代码中编码,还是通过其他方式获得,都将被(重新)编码为 utf-16。
在大多数情况下它并不重要。源代码是给人类的,执行字符集是给机器的。然而,事实确实有两个小问题:
- Java脚本字符串可能会浪费很多 space 如果您的字符串主要是 ASCII 范围(它们将是英语,甚至是使用 spaces 的其他语言).
- 与 utf-8 一样,utf-16 也是可变宽度的,尽管大多数语言中的大多数字符都在正常的 2 个字节内;但是 Java如果某些字符扩展到 4 个字节,脚本可能会错误计算字符串的长度。
除了哪种编码更适合特定人类语言的问题,没有其他优势。如果 Java脚本是最近开发的,它可能会使用 utf-8 编码字符串。