После последних тестов я могу рекомендовать самое быстрое и полностью совместимое с браузером собственное решение javaScript (DOM):
function HTMLescape(html){
return document.createElement('div')
.appendChild(document.createTextNode(html))
.parentNode
.innerHTML
}
Если вы повторяете это много раз, вы можете сделать это с помощью подготовленных переменных:
//prepare variables
var DOMtext = document.createTextNode("test");
var DOMnative = document.createElement("span");
DOMnative.appendChild(DOMtext);
//main work for each case
function HTMLescape(html){
DOMtext.nodeValue = html;
return DOMnative.innerHTML
}
Посмотрите мое окончательное сравнение сравнение ( вопрос стека ).