I would say that it is not the dumping process that is creating a problem; it is probably the restoring process that is generating the error.
Your issue can fall into two categories, as far as I can tell:
The postgres cluster encoding, the server encoding and the client encoding are not set properly. The postgres help gives good guidance on how to set up a combination of the three
You are running into an issue that other folks ( including myself) have run into with the german umlaut characters on the following configuration:
Cluster encoding: C
Server encoding: UTF8
Client encoding: UTF8
Where the umlaut character is stored as two characters: and postgres does not successfully read the two characters as one
I am from Brazil, and here we use a lot of special characters like : ã, é. I did a dump from my database, and when i will restore the database i got error with the encoding : invalid byte sequence for encoding "UTF8": 0xf3706f6c
I want to know if somebody, knows how can i do a dump that preserves my special characters !?