With a lot of help from guru Arve Bersvendsen, I was able to get the display to correctly in Opera and even in Internet Explorer. I’m not quite sure why it works, but I think it was the XML-declaration that messed things up. And I was wrong in my statement that removing this line made my XHML invalid. The validator was only complaining about the lack of a defined character set, not the lack of the XML-declaration. My XHTML was valid without the declaration. And (almost) everything works smoothly now. Woho!
Users of Opera and Internet Explorer might notice that the huge and annoying box normally displayed at the top of most pages is now gone! Great, eh?