The WXR export should be UTF-8 because it’s an XML document.
However, there are still things to improve here, but none of them should use utf8_encode().
It would be nice to see improvements in the export flow to convert into UTF-8, but that is definitely a complicated matter.
For now it would be great if someone could clarify the behavior and ensure that WordPress does not indicate that the WXR is in the blog_charset or any other value than utf-8. @tott can you confirm if this is still a problem and explain more on the “header and encoding is set to encoding used in blog” part?
The fix here is not preserving the charset because that will cause all sorts of trouble when attempting to import files. Note that this does not in any way depend on support for UTF-8 code or conversion functionality. If WordPress is unable to convert to UTF-8 from a known charset then it should produce an error of some kind.
Eventually I hope to add full fallback support in #64473 which would give us the tools to do so reliably and safely regardless of which extensions are installed.