Both seem to be equally well supported by major browsers for character encoding (See http://www.w3.org/International/tests/html5/css21-style-sheet-rep/results-encoding#basics), although not so for language declaration.

But I subscribe to the view that in-document declarations are better than server-based, (1) because it's more portable, (2) it's easier to get an idea of what's going on in the test - you can see that we are setting the encoding and what to rather than having to check whether perhaps there's some server setting making a difference, and (3) because i can then use that file offline and it will still work as intended.