'{FileTitle}' === '{FileTitle}'
// false
第一个字符串的最后一个e
和}
之间有一个空格
'{FileTitle}'.length
// 12
'{FileTitle}'.length
// 11
答案 0 :(得分:2)
在这两个字符之间有代码8203的Unicode字符。这是一个0宽的空间。有关详细信息,请查看相应的Wikipedia article。
答案 1 :(得分:2)
这是一个有时令人讨厌的问题的一个很好的例子: - )
如果我将代码复制到TextWrangler,那么我会看到空格。如果我选择“Hex Dump”,那么我会看到十六进制字节0B 20.考虑到小端语境(thx到@axiac),这意味着字符0x200B,十进制8203。
有关特定unicode字符的信息,请使用:http://unicode-table.com/de/search/?q=8203您将看到描述“零宽度空间”。
关于这个角色如何进入你的代码,人们只能猜测。第一种选择是,你在编辑器中无意中通过击中某个键组合来编写它。第二个选项是,您从富文本文档中复制它作为偷渡者。选项三是,它因为一些偶然的多字节字符串操作而到达那里。
相关问题是Ascii 0xA0
(或0x00A0
),即不可破坏的空间。它无法通过眼睛与普通空间区分开来,但会导致编译器语法错误有时难以解决。
答案 2 :(得分:-1)
这个没有空间 '{FileTitle}'==='{FileTitle}'
您刚刚使用了不同的编码。