The htmlencode( function uses the characterfilter( function, which is implemented in Objective-C so it should be pretty fast. Here is what the htmlencode( function is doing:
characterfilter(thetext,|||switch(import(), {‘},{'}, {’},{'}, {”},{"}, {“},{"}, {&},{&}, { },{ }, {¡},{¡}, {¢},{¢}, {£},{£}, {€},{¤}, {¥},{¥}, {|},{|}, {§},{§}, {¨},{¨}, {©},{©}, {ª},{ª}, {«},{«}, {¬},{¬}, {–},{­}, {®},{®}, {¯},{¯}, {˚},{°}, {±},{±}, {´},{´}, {µ},{µ}, {¶},{¶}, {•},{·}, {¸},{¸}, {º},{º}, {»},{»}, {¿},{¿}, {À},{À}, {Á},{Á}, {Â},{Â}, {Ã},{Ã}, {Ä},{Ä}, {Å},{Å}, {Æ},{Æ}, {Ç},{Ç}, {È},{È}, {É},{É}, {Ê},{Ê}, {Ë},{Ë}, {Ì},{Ì}, {Í},{Í}, {Î},{Î}, {Ï},{Ï}, {Ñ},{Ñ}, {Ò},{Ò}, {Ó},{Ó}, {Ô},{Ô}, {Õ},{Õ}, {Ö},{Ö}, {Ù},{Ù}, {Ú},{Ú}, {Û},{Û}, {Ü},{Ü}, {ß},{&zslig;}, {à},{à}, {á},{á}, {â},{â}, {ã},{ã}, {ä},{ä}, {å},{å}, {æ},{æ}, {ç},{ç}, {è},{è}, {é},{é}, {ê},{ê}, {ë},{ë}, {ì},{ì}, {í},{í}, {î},{î}, {ï},{ï}, {ñ},{ñ}, {ò},{ò}, {ó},{ó}, {ô},{ô}, {õ},{õ}, {ö},{ö}, {÷},{÷}, {ù},{ù}, {ú},{ú}, {û},{û}, {ü},{ü}, {ÿ},{ÿ}, import())|||)