Estoy comparando cadenas y tengo que reemplazar las diéresis en JS, pero parece que JS no reconoce las diéresis en las cadenas. El texto proviene de la base de datos y en el navegador las diéresis se muestran bien.Reemplazo de umlauts en JS
function replaceUmlauts(string)
{
value = string.toLowerCase();
value = value.replace(/ä/g, 'ae');
value = value.replace(/ö/g, 'oe');
value = value.replace(/ü/g, 'ue');
return value;
}
Como patrones de búsqueda que trataron:
- "A", "O", "U"
- /a /,/o /,/u/
- "
ä
" "ö
", "ü
" (así la desesperación total de ;-))
para estar seguro, que no es una cuestión con la función de reemplazar Probé indexOf:
console.log(value.indexOf('ä'));
Pero la salida con todos los patrones es: -1
así que supongo que es algún tipo de problema con la codificación, pero como he dicho en la página de las diéresis hacer apenas se ven bien .
¿Alguna idea? Esto parece tan simple ...
EDIT: Incluso si encontré mi respuesta, el problema no fue realmente resuelto "en la raíz" (la codificación). Esta es mi página de codificación:
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
La base de datos tiene: utf8_general_ci
parece totalmente bien para mí.
Qué codificación utilizas en su base de datos y qué codificación usas en tu página web? – Marc
¿Y cuál es la cuerda? Log it Sus enfoques funcionarían, pero como puede ver en su indexOf, su cadena no contiene un "ä". – Bergi
'" bäg ".replace (/ ä/g," ae "); // ==> "baeg" ', entonces algo probablemente está apagado con tu codificación –