En JavaScript, que yo sepa, no existe algo similar a la función htmlentities de PHP, que convierte los caracteres normales de una cadena en su equivalente html. Por ejemplo, á en á. Necesitaba algo así para el trabajo, así que preparé una función equivalente en js. Es más simple que un botijo, pero, como es algo pesado preparar los arrays, la publico aquí por le resulta útil si a alguien.
function htmlentitiesJS(cadena) {
var caracteresOriginales = ['À', 'à', 'Á', 'á', 'Â', 'â', 'Ã', 'ã', 'Ä', 'ä', 'Å', 'Æ', 'æ', 'Ç', 'ç', 'Ð', 'ð', 'È', 'è', 'É', 'é', 'Ê','ê', 'Ë', 'ë', 'Ì', 'ì', 'Í', 'í', 'Î', 'î', 'Ï', 'ï', 'Ñ', 'ñ', 'Ò', 'ò', 'Ó', 'ó', 'Ô', 'ô', 'Õ', 'õ', 'Ö', 'ö', 'Ø', 'ø', 'Œ', 'œ', 'ß', 'Þ', 'þ', 'Ù', 'ù', 'Ú', 'ú', 'Û', 'û', 'Ü', 'ü', 'Ý', 'ý', 'Ÿ', 'ÿ', '©', '®', '€', '<', '>', '"'];
var caracteresReemplazados = ['À', 'à', 'Á', 'á', 'Â', 'â', 'Ã', 'ã', 'Ä', 'ä', 'Å',' Æ', 'æ', 'Ç', 'ç', 'Ð', 'ð', 'È', 'è', 'É', 'é', 'Ê', 'ê', 'Ë', 'ë', 'Ì', 'ì', 'Í', 'í', 'Î', 'î', 'Ï', 'ï', 'Ñ', 'ñ', 'Ò', 'ò', 'Ó', 'ó', 'Ô', 'ô', 'Õ', 'õ', 'Ö', 'ö', 'Ø', 'ø', 'Œ', 'œ', 'ß', 'Þ', 'þ', 'Ù', 'ù', 'Ú', 'ú', 'Û', 'û', 'Ü', 'ü', 'Ý', 'ý', 'Ÿ', 'ÿ', '©', '®', '€', '<', '>', '"'];
var longOriginales = caracteresOriginales.length;
for ( var i=0; i < longOriginales; i++ ) {
var patron = new RegExp(caracteresOriginales[i],"g");
cadena = cadena.replace(patron, caracteresReemplazados[i]);
}
return cadena;
}