mi sto confrontando stringhe e devono sostituire le dieresi in JS, ma sembra JS non riconosce gli umlaut nelle stringhe. Il testo proviene dal database e nel browser gli umlaut si mostrano bene.Sostituzione dieresi in JS
function replaceUmlauts(string)
{
value = string.toLowerCase();
value = value.replace(/ä/g, 'ae');
value = value.replace(/ö/g, 'oe');
value = value.replace(/ü/g, 'ue');
return value;
}
come modelli di ricerca ho provato:
- "A", "O", "ü"
- /A /,/o /,/u/
- "
ä
" , "ö
", "ü
" (la disperazione e totale ;-))
per essere sicuri, che non è una questione con la funzione di sostituzione Ho provato indexOf:
console.log(value.indexOf('ä'));
Ma l'uscita con tutti i modelli è: -1
quindi credo che sia una specie di un problema con la codifica, ma come ho detto nella pagina delle dieresi si limitano a guardare bene .
Qualche idea? Sembra così semplice ...
MODIFICA: Anche se ho trovato la mia risposta, il problema non è stato risolto "alla radice" (la codifica). Questa è la mia pagina di codifica:
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
Il database ha: utf8_general_ci
sembra del tutto bene per me.
Cosa codifica si fa a utilizzare nel database e quale codifica usi nella tua pagina web? – Marc
E qual è la stringa ??? Registralo. I tuoi approcci funzionerebbero, ma come puoi vedere dal tuo indexOf, la tua stringa non contiene un "ä". – Bergi
'" bäg ".replace (/ ä/g," ae "); // ==> "baeg" ', in modo da qualcosa è probabilmente fuori con la codifica –