Encodings and Languages are relatively independent. If you have an "universal" encoding like UTF-8, it can encode characters from all languages (provided they are in the Unicode character repertoire, which is the case for basically all living and many dead languages). And you don't have to special-case any language.
I don't know exactly what characters are in gb2312, but if you want to use some characters that are not in it, you have to use a different encoding.
If you use UTF-8 for English and German, you should be fine (but your program has to know this, of course).
Perl 6 - links to (nearly) everything that is Perl 6.