Javascript chaîne de comparaison échoue lorsque l'on compare les caractères unicode

Je veux comparer deux chaînes de caractères en JavaScript qui sont les mêmes, et pourtant, l'opérateur d'égalité == renvoie la valeur false. Une chaîne de caractères contient un caractère spécial (par exemple. le danois å).

Code JavaScript:

var filenameFromJS = "Designhåndbog.pdf";
var filenameFromServer = "Designhåndbog.pdf";

print(filenameFromJS == filenameFromServer); //This prints false why?

La solution
Ce qui a fonctionné pour moi est de normalisation unicode comme slevithan souligné.

Je bifurquais mon original jsfiddle pour faire une version à l'aide de la normalisation lib suggéré par slevithan. Lien: http://jsfiddle.net/GWZ8j/1/.

Voir cet article sur == vs === stackoverflow.com/questions/359494/...
Lorsque les deux opérandes sont de même type, il n'a pas d'importance si vous utilisez lâche ou comparaison stricte.
C'est aussi très utile: joelonsoftware.com/2003/10/08/... (Ce que chaque développeur doit savoir sur unicode et les jeux de caractères)

OriginalL'auteur tougher | 2012-05-29