【发布时间】:2015-08-22 21:47:27
【问题描述】:
我故意使用了一个看似不标准但可以使用的字符:
var ᛨ={};
ᛨ.causeError()
Uncaught TypeError: è.causeError is not a function
显然 ᛨ 字符是 è 字符的一个版本
(一个 utf-8 普通文本字符 a,b,c 是文本)
对
(非文字☎,®,#,%)
è === 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
ᛨ === 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
我没有看到相关性!
如何测试非标准字符以查看它们是否与普通文本字符相关?
我要寻找的关系是什么?
出于兴趣;这个 Unicode 问题是否记录在任何地方?
[这个问题,经过进一步思考,还没有完全解决(见 cmets)]
【问题讨论】:
-
我真的不认为它应该重要,但这是一个非常有趣的问题:)
-
是的,我觉得它很有趣!
-
另外,我刚刚查过了。您仍然可以创建一个名为 ᛨ 的属性和另一个名为 "è" 的属性。错误似乎只是控制台输出的问题。
-
也许但是,那么控制台为什么要把这两者联系起来呢?
-
嗯,很明显的联系是 16E8 的第二个字节是 E8,所以如果它被误解为一对单字节字符,你会看到一个 è
标签: javascript text utf-8