JavaScript-SCRIPT1023缺少十六进制数字 (Expected hexadecimal digit)

来源:互联网 发布:中国政治知乎 编辑:程序博客网 时间:2024/06/06 04:36

项目中前端使用了 easyui,其中国际化文件是用纯中文写的(如下图右侧),导致另一个外系统集成我们项目的页面时,相关的文字就变成了乱码


为了处理这个,先尝试把国际化文件中的内容转成 unicode 编码,但改完后一刷新,发现报错了:

SCRIPT1023: 缺少十六进制数字

(Expected hexadecimal digit)


具体查了一下,是指这一行内容:


URL 这三个字符转成 unicode 编码后,在 IE 下报错,用 Chrome 报的是另一个错:

Uncaught SyntaxError: Unexpected token ILLEGAL


尝试了另几种方法,把 URL 三个字符转成其他的,如:

\\u55\\u52\\u4c
URL


虽然不会报错,但还是不能正常显示 URL,最后尝试不对 URL 三个字符进行转码:

\u8bf7\u8f93\u5165\u6709\u6548\u7684URL\u5730\u5740

测试通过


================昏割线================


继续研究:



搜了下微软的官方文档,其中是这么说的:

字符串值是一个由零或多个 Unicode 字符(字母、数字和其他字符)组成的序列。 字符串括在成对的单引号或双引号内。 括在单引号内的字符串可包含双引号。 括在双号内的字符串中可包含单引号。

字符串中的每个字符均可由一个转义序列表示。 转义序列以反斜杠 (\) 开头,它通知 JavaScript 解释器下一个字符是特殊字符。

可以使用 \uhhhh 转义序列指定 Unicode 字符,其中 hhhh 是四位十六进制数。 Unicode 转义序列可以表示任何 16 位字符。 有关其他信息,请参阅 Unicode 码位转义序列。


所以,反斜杠后,需要四位十六进制数,而 U 这个字符转成 unicode 编码后是 \u55,不符合官方所需,这就正如报错内容:缺少/预期十六进制数字


但英文如果想转 unicode 编码怎么办?换了一个在线转码工具后发现:


emmm...... 好吧,可能也就是因为之前用的那个转码工具有BUG吧,没有转成正规的十六进制,啊哈...哈...

阅读全文
0 0
原创粉丝点击