这是我正在尝试但不确定如何使其工作或甚至可能 -
我有一个HTML页面MyHTMLPage.htm
,我希望src
来自此HTML文件的Javascript。这非常简单。我计划在我的HTML文件中加入<script src = "MyJavascript.js"></script>
标记,并且应该处理它。
但是,我想使用UTF-16编码创建我的Javascript文件。因此,我计划在我的HTML文件中使用以下标记<script charset="UTF-16" src="MyJavascript.js"></script>
来处理
现在我真正遇到的问题是如何使用UTF-16编码创建Javascript - 例如。假设我的Javascript代码是alert(1);
我创建了我的Javascript文件,其内容为\u0061\u006c\u0065\u0072\u0074\u0028\u0031\u0029\u003b
,但在运行时似乎没有作为有效的Javascript执行。
总结一下,这就是我所拥有的 -
...
...
...
<script charset="UTF-16" src="MyJavascript.js"></script>
...
...
...
\u0061\u006c\u0065\u0072\u0074\u0028\u0031\u0029\u003b
当我在Firefox中打开HTML页面时,我在Syntax error - Illegal character
文件的开头就出现了错误 - “MyJavascript.js
”。我也尝试在上面的Javascript开头添加BOM字符“\ufeff
”,但我仍然遇到同样的错误。
我知道我可以创建我的Javascript文件 - “alert(1);
”,然后使用文本编辑器使用UTF-16编码保存它,然后浏览器运行正常但是有一种方法我可以使用“{ {1}}“符号(或替代转义字符)仍然可以让Javascript执行正常吗?
谢谢,
答案 0 :(得分:3)
你误解了字符编码。字符编码是字符如何在幕后表示为位的方案。
你不会在你的文件中写\u004a
来“make it utf-16”,因为它实际上是一个由6个字符组成的序列:
\
,u
,0
,0
,4
,a
如果你将上面的内容保存为utf-16,它将表示为以下位:
005C0075
00300030
00340061
如果你把它保存为utf-8那就是:
5C753030
3461
占用50%的空间和带宽。按字面意思("J"
)写字符只需要更少:只需一个字节
(4A
)在utf-8中。
"\u"
- 表示法是一种通过使用一小组ascii字符来引用任何BMP字符的方法。如果你是
使用没有unicode支持的文本编辑器,您可以编写"\u2665"
,而不是字面上写"♥"
和
浏览器会正确显示它。
如果您出于某些奇怪的原因仍然想使用utf-16,只需正常编写代码,将文件保存为utf-16并使用正确的字符集标题提供。