I found a workaround for this problem: before starting oowriter, I unset LC_CTYPE and set LANG to zh_CN.UTF-8 (which I have installed) or any uninstalled or undefined value. In the latter case, I will get an I18N error message, but things still work as I would normally expect them to.
Florian NB: The problem is not limited to German Umlauts. When I set the keyboard to eg. Norwegian layout with setxkbmap, I get the according two-byte values interpreted as two characters as well. Does it help to know that I use sarge / Gnome 2.6 / metacity and kbd_mode shows the keyboard to be "in raw (scancode) mode" under X (and in UTF-8 mode on the console)? NB2: when I use X Input Method (XIM), OOo crashes and I get a stack trace. Are you interested in that? Whether this happens when I switch XIM on or off depends on what locale setting I am using, and the stack trace is a little different accordingly. But then my XIM is somehow screwed up, so maybe I should post this to some X people?