显然,一些非标准字符被视为常规字符

Ben*_*oft 5 javascript text utf-8

我使用看似非标准但可以使用的字符进行故意错误:

var ?={};
?.causeError()

Uncaught TypeError: è.causeError is not a function
Run Code Online (Sandbox Code Playgroud)

显然ᛨ字符是è字符的一个版本

(utf-8普通文本字符a,b,c是文本)

VS

(非文本☎,®,෴,%)

è=== http://unicode-table.com/en/00E8/

Encoding      hex             dec (bytes)    dec            binary
UTF-8         C3 A8           195 168        50088          11000011 10101000
UTF-16BE      00 E8           0 232          232            00000000 11101000
UTF-16LE      E8 00           232 0          59392          11101000 00000000
UTF-32BE      00 00 00 E8     0 0 0 232      232            00000000 00000000 00000000 11101000
UTF-32LE      E8 00 00 00     232 0 0 0      3892314112     11101000 00000000 00000000 00000000
Run Code Online (Sandbox Code Playgroud)

ᛨ=== http://unicode-table.com/en/16E8/

Encoding      hex            dec (bytes)     dec            binary
UTF-8         E1 9B A8       225 155 168     14785448       11100001 10011011 10101000
UTF-16BE      16 E8          22 232          5864           00010110 11101000
UTF-16LE      E8 16          232 22          59414          11101000 00010110
UTF-32BE      00 00 16 E8    0 0 22 232      5864           00000000 00000000 00010110 11101000
UTF-32LE      E8 16 00 00    232 22 0 0      3893755904     11101000 00010110 00000000 00000000
Run Code Online (Sandbox Code Playgroud)

我没有看到相关性!

如何测试非标准字符以查看它们是否与普通文本字符相关?

我会寻找什么样的关系?

不感兴趣; 这个Unicode问题是否记录在何处?

[经过进一步思考后,这个问题尚未完全解决(见评论)]

Dom*_*ino 1

它使用名为 \xe0\xb2\xa0_\xe0\xb2\xa0 的变量进行测试,错误消息包含“ _ ”(空格下划线空格)。看起来编写错误消息的代码不支持应有的字符数。

\n\n

同样的问题发生在控制台中,所以这不是文件编码问题。另外,除了自动错误消息之外,字符的管理没有任何问题。即使写作也throw new Error("\xe0\xb2\xa0_\xe0\xb2\xa0");没有问题。

\n\n

这似乎是一个相当具体的错误,但它会影响 Chrome 和 Firefox。

\n