Here is the solution:
$lang = 'de'; //debug
setlocale( LC_ALL, 'C.UTF-8' );
bindtextdomain( 'default', PATH . "/locale/$lang" );
bind_textdomain_codeset( 'default', 'UTF-8' );
textdomain( 'default' );
The only difference between that and the example I posted at the bottom of my answer is that it uses C.UTF-8
not just C
.
I'll be doing more testing of this, and if it works cross-platform, and will update this answer if I find out anything else.