What environmental variables do I need to change when running DF in ncurses mode on a Linux VPS in order to get characters to display properly? With LC_ALL=POSIX (apparently ubuntu's default), I get missing characters in any terminal, doesn't matter what language that terminal is set to. Other than that it looks fine. When I set LC_ALL=en_US.UTF-8 things got much worse; extra newlines and other very odd spacing issues which makes the game definitively unplayable. Ironically it gets even worse when running PuTTY set to UTF-8.
Edit: With LC_ALL=en_US.UTF-8, I'm getting the game to display perfectly when ssh'd in through a terminal running on Linux. This points to a problem with PuTTY's configuration. But I have no idea what.
Running DF under any xx_XX.UTF-8 should work (and in fact, only those).
Dfterm2 always assumes and sends UTF-8 (regardless of any locale settings). It should still be run under a UTF-8 locale, because launched DF instances inherit the environment and locale settings (and DF chooses encoding based on locale).
Dfterm2 expects DF to give it UTF-8.
Therefore, the terminal program should always be UTF-8 (be it PuTTY or any terminal on Linux).
Check that you can run DF in a UTF-8 locale without dfterm2 in between. Some systems have ncurses that can't use wide characters and assume 8-bit encodings (I think? I'm not 100% about the details, on Debian ncursesw has to be installed manually.). If that works, try launching a /bin/bash in a dfterm2 slot and check locale and then run DF in there.
I've heard from another person who also had mysterious problems with encodings, even though everything seemed to be set correctly (everything set to UTF-8). There may be an unknown issue here.