Problem I found - if I use ISO-8859-2 encoding (probably any encoding other than UTF-8), clicking "Apply" button when editing page will result in UTF-8 encoded page. Clicking "Submit" button fixes page, bringing ISO-8859-2 encoding back.
I'm pretty sure it's xajax issue. From xajax encoding tutorial (http://xajaxproject.org/wiki/Tutorials: ... _and_xajax):
I tried using decodeUTF8InputOn(), but somehow, it doesn't help.Regardless of the encoding you have set, the data will arrive from your javascript encoded in UTF-8. Use the $xajax->decodeUTF8InputOn() method to enable automatic decoding from UTF-8 to the character encoding you have set.
I tried using it just after xajax object creation in admin/editcontent.php and by setting $this->bDecodeUTF8Input = true; in xajax function declaration in /lib/xajax/xajax.inc.php.
To make things more interesting, editing news works like a charm even without decodeUTF8InputOn(), which looks really strange. (ignore this, I was too tired, news doesn't use (x)ajax). Anyway, I'm not goint to dig any deeper, because ISO-8859-2 breaks other things as well, e.g. version for printing, so it's more complicated issue.