I always had a problem with Arabic HTML emails. They don't specify the encoding.
I'm using mutt (Yes!) as my mail reader. HTML emails can be handled using lynx and a mailcap entry like this:
text/html; /usr/bin/lynx -dump '%s'; copiousoutput; description=HTML Text; nametemplate=%s.html
The problem is that the HTML fragment in the email doesnt specify the encoding (or whatever the reason is). lynx always assumed an incorrect encoding (iso/cp1252 or whatever). I have no problem reading such emails by viewing the plain text part but It breaks when I reply to people.
The solution is to simply force lynx to use utf8
text/html; /usr/bin/lynx -assume_charset=utf8 -dump '%s'; copiousoutput; description=HTML Text; nametemplate=%s.html