There are a number of issues specifically with AJAX which can cause problems.
If you're serving XML back to the client, ensure that it is in the right encoding.
If you're serving JSON, make sure that you set the content-type appropriately.
Content-type: text/javascript; charset=utf8
Seems to work for me.
There is a bug in some versions of Opera it seems, that does not interpret XML documents' encoding correctly in XHR responses.
But I've used JSON responses successfully with utf8 text in Mozilla, Konqueror, Opera and even MSIE.
For entering data, ensure that you're submitting a request appropriately formed into the right encoding. I use form-encoded POSTs encoded with encodeURIComponent(), which creates a url-encoded string in UTF8 (Javascript's strings are always Unicode internally).
Mark