Le remplacement des trémas en JS

Je suis de la comparaison de chaînes et de remplacer les accents en JS, mais il semble que JS ne reconnaît pas les accents dans les cordes. Le texte provient de la base de données et dans le navigateur, les accents ne montrer fines.

function replaceUmlauts(string)
{
    value = string.toLowerCase();
    value = value.replace(/ä/g, 'ae');
    value = value.replace(/ö/g, 'oe');
    value = value.replace(/ü/g, 'ue');
    return value;
}

Que les modèles de recherche, j'ai essayé:

  • "ä", "ö", "ü"
  • /ø/, /ö/, /ü/
  • "ä", "ö", "ü" (bien le désespoir total ;-))

Pour être sûr, qu'il n'est pas une question avec la fonction replace j'ai essayé indexOf:

console.log(value.indexOf('ä'));

Mais la sortie avec tous les modèles: -1

Donc je suppose que c'est un problème d'encodage, mais comme je l'ai dit sur la page de la trémas faire juste l'air très bien.

Des idées? Cela semble si simple...

EDIT:
Même si j'ai trouvé ma réponse, le problème n'est pas vraiment résolu "à la racine" (l'encodage).
C'est ma page d'encodage:

<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">

La base de données a: utf8_general_ci

Semble totalement va bien pour moi.

L'encodage que vous utilisez dans votre base de données et l'encodage que vous utilisez dans votre page web?
Et qu'est-ce que la chaîne??? Journal. Votre approche du travail, mais comme vous pouvez le voir à partir de votre indexOf, votre chaîne ne contient pas un "ä".
"bäg".replace(/ä/g, "ae"); // ==> "baeg", si quelque chose est probablement avec votre encodage
Je me suis connecté à la chaîne et le ø est affiché dans la console, beofre et après le remplacement - c'est certainement là 🙂 j'ai écrit mon encodage dans la question, qui semble totalement d'accord avec moi, c'est le reasion j'ai choisi la réponse d'Oleg. Un grand merci à tous, à vous et oui cette façon le problème n'est pas vraiment résolu à "il est à la racine"

OriginalL'auteur SamiSalami | 2012-07-25