Hombre, funcionar funciona, pero sólo para los elementos HTML, para ventanas modales no sé cual sería la solución definitiva. Supongo que con lo que posteaste ya valdrá. Reitero que depende de la configuración del charset de cada navegador, yo, por ejemplo, no veo las páginas asiáticas en un ordenador sin instalar esas fuentes ni seleccionar un charset que las contemple.
Código PHP:
<html>
<head>
<title>
htmlentities
</title>
<script type="text/javascript">
function parejas(char, code){
this.char = char;
this.code = code;
}
var pares = new Array();
pares[0] = new parejas("€", "€");
pares[1] = new parejas("á", "á");
function htmlentities(txt) {
for (var i = 0, total = pares.length; i < total; i ++)
txt = txt.replace(new RegExp(pares[i].char, "g"), pares[i].code)
return txt;
}
function ponEnDIV() {
document.getElementById('capa').innerHTML = (htmlentities(document.forms[0].tex.value));
}
</script>
</head>
<body >
<form action="javascript: ponEnDIV()" >
<textarea name="tex" >Habrá que pagar €56!</textarea>
<button type="submit" >traducir</button>
</form>
<div id="capa"></div>
</body>
</html>
Un saludo.