Javascript 带有特殊字符的string.localeCompare()在不同浏览器中的工作方式不同

Javascript 带有特殊字符的string.localeCompare()在不同浏览器中的工作方式不同,javascript,Javascript,我不确定这应该是什么样的预期行为,但问题是对于不同的浏览器它是不同的。我只试过IE(11)、firefox和chrome 结果: 铬:1(以“?”开头) Firefox:-1(以“%”开头) IE 11:-1(以“%”开头) 比较这样的特殊角色的预期结果是什么?没有什么规范吗?很明显,“localeCompare”就是这个意思。。。但在我看来,%应该排在?之前(如在Firefox和IE中),因为它的序数值较低。规范说“这两个字符串是以实现定义的方式进行比较的。”也许这就是原因。 "%".loca

我不确定这应该是什么样的预期行为,但问题是对于不同的浏览器它是不同的。我只试过IE(11)、firefox和chrome

结果:

铬:1(以“?”开头)

Firefox:-1(以“%”开头)

IE 11:-1(以“%”开头)


比较这样的特殊角色的预期结果是什么?没有什么规范吗?

很明显,“localeCompare”就是这个意思。。。但在我看来,
%
应该排在
之前(如在Firefox和IE中),因为它的序数值较低。规范说“这两个字符串是以实现定义的方式进行比较的。”也许这就是原因。
"%".localeCompare("?")