Stu's Site has a nice example of a way of preventing email harvesting by writing the email in reverse and then letting stylesheets reverse it when rendering. The HTML source looks like this:
<style type="text/css">
.backwards {unicode-bidi:bidi-override; direction: rtl;}
</style>
<span class="backwards">ku.oc.u7s@uts</span>
And the result is: stu@s7u.co.uk. It works on in my web browsers (win, linux), but the nasty effect is that if you select the text, copy and paste; when you paste it pastes it as ku.oc.u7s@uts. Pretty annoying.
My site uses hex encoding so the HTML looks like this:
<script language="JavaScript">eval(unescape('%64%6F...lots of these...%29'))</script>
<noscript>Peter, mail(at)peterbe dot com</noscript>
The result is as if no anti-harvesting effect had been applied.
Sadly I bet that spammers have tricks to get around both but what matters is how few spammers have yet to come up with the solution. I'm thinking of keeping my method and adding something that scrambles up the encoded string to break spammers regular expressions. But the effect mustn't be as bad as the example on Stu's site.