I'm talking about locale (from use open qw(:std :locale)). encoding doesn't override locale (maybe it should? but it doesn't. They basically stack). Note that using :raw simply removes the locale layer (like removing use open ... entirely, because by default Perl ignores locales... for the most part).
Comment on Re^3: How to sanely handle unicode in perl?
Also note that "echo \xC3\xB6" won't always work... conceptually, Perl's strings are sequences of integers; there is no guarantee about their internal representation - in particular, no guarantee that C3 and B6 are actually bytes. Try "echo \xC3\xB6\x{FFFD}" and see what happens...