-3

这是我正在尝试的,但不确定如何使其正常工作,或者是否有可能-

  1. 我有一个 HTML 页面MyHTMLPage.htm,我想 src从这个 HTML 文件中获取 Javascript。这很简单。我计划<script src = "MyJavascript.js"></script>在我的 HTML 文件中包含一个标签,这应该会处理好它。

  2. 但是,我想使用 UTF-16 编码创建我的 Javascript 文件。所以,我打算<script charset="UTF-16" src="MyJavascript.js"></script>在我的 HTML 文件中使用以下标签来处理这个问题

  3. 现在我真正遇到的问题是如何使用 UTF-16 编码创建 Javascript - 例如,假设我的 Javascript 代码是alert(1);我创建的 Javascript 文件,内容为 as\u0061\u006c\u0065\u0072\u0074\u0028\u0031\u0029\u003b但在运行时似乎没有作为有效的 Javascript 执行。

总而言之,这就是我所拥有的 -

MyHTMLPage.html

...
...
...
<script charset="UTF-16" src="MyJavascript.js"></script>
...
...
...

MyJavascript.js

\u0061\u006c\u0065\u0072\u0074\u0028\u0031\u0029\u003b

当我在 Firefox 中打开 HTML 页面时,我Syntax error - Illegal character在文件的开头收到错误 - “” MyJavascript.js。我还尝试\ufeff在上述 Javascript 的开头添加 BOM 字符“”,但仍然出现相同的错误。

我知道我可以将我的 Javascript 文件创建为 -“ alert(1);”,然后使用文本编辑器使用 UTF-16 编码将其保存,然后浏览器运行良好但是有没有办法可以使用“ \u”符号(或替代转义字符)并且仍然可以正常执行 Javascript?

谢谢,

4

1 回答 1

3

您误解了字符编码。字符编码是一种在幕后将字符表示为位的方案。

您不会\u004a在文件中写入“使其为 utf-16”,因为这实际上是 6 个字符的序列:

\, u, 0, 0, 4,a

如果您将上述内容保存为 utf-16,它将表示为以下位:

005C0075
00300030
00340061

如果您将其保存为 utf-8,它将是:

5C753030
3461

它占用了 50% 的空间和带宽。从字面上写该字符 ( ) 所需的时间更少"J":只需 utf-8 中的一个字节 ( 4A)。

-notation"\u"是一种仅使用一小组 ascii 字符来引用任何 BMP 字符的方法。如果您使用的是不支持 unicode 的文本编辑器,则可以编写"\u2665",而不是字面编写"♥",浏览器会正确显示它。

如果您出于某种奇怪的原因仍想使用 utf-16,只需正常编写代码,将文件保存为 utf-16 并使用正确的字符集标头提供它。

于 2012-10-22T15:20:59.793 回答