【发布时间】:2012-06-04 01:32:14
【问题描述】:
我想比较 JavaScript 中两个相同的字符串,但相等运算符 == 返回 false。一个字符串包含一个特殊字符(例如丹麦语å)。
JavaScript 代码:
var filenameFromJS = "Designhåndbog.pdf";
var filenameFromServer = "Designhåndbog.pdf";
print(filenameFromJS == filenameFromServer); // This prints false why?
解决方案 对我有用的是 slevthan 指出的 unicode 规范化。
我分叉了我原来的 jsfiddle 以使用 slevthan 建议的规范化库制作一个版本。链接:http://jsfiddle.net/GWZ8j/1/.
【问题讨论】:
-
查看这篇关于
==与===stackoverflow.com/questions/359494/…的文章 -
@Steve 当两个操作数属于同一类型时,使用松散比较还是严格比较都没关系。
-
这也很有用:joelonsoftware.com/2003/10/08/…(每个开发者都需要了解的关于 unicode 和字符集的知识)
标签: javascript string unicode data-transfer unicode-normalization