I use *xterm* (X-Win32 2012 Build 30 from StarNet Communications Corp) to login from a Windows 7 PC to a Red Enterprise Linux 6 (RHEL6).

My problem is that all multi-byte utf-8 characters comes out garbled in the xterm login shell. For example, here's how the string "Wilhelm Röntgen" is rendered in the two shell instances (the font used is a Unicode font and is the same font in both shell instances):

 Login shell: Wilhelm Röntgen
 Second shell: Wilhelm Röntgen


Here is the command I've configured X-Win32 to use to start the login shell:

 xterm -u8 -ls

However, *after* I login, I can do `xterm` in the login shell, and that command that will fork a new xterm instance where locale setting works as expected (i.e. utf-8 characters are rendered correctly).

Here is the relevant settings as they appear in the login shell:

 $ locale
 LANG=en_US.UTF-8
 LC_CTYPE=en_US.UTF-8
 LC_NUMERIC="en_US.UTF-8"
 LC_TIME="en_US.UTF-8"
 LC_COLLATE=C
 LC_MONETARY="en_US.UTF-8"
 LC_MESSAGES="en_US.UTF-8"
 LC_PAPER="en_US.UTF-8"
 LC_NAME="en_US.UTF-8"
 LC_ADDRESS="en_US.UTF-8"
 LC_TELEPHONE="en_US.UTF-8"
 LC_MEASUREMENT="en_US.UTF-8"
 LC_IDENTIFICATION="en_US.UTF-8"
 LC_ALL=

 $ printenv XTERM_LOCALE
 en_US.UTF-8

I also have the following two lines in .Xresources:

 xterm*locale: true
 xterm*utf8: 1

It looks like the login shell xterm doesn't recognise the locale I've set, but I don't understand why not. My xterm is clearly capable of this, since all non-login shells do this by default.