The solution to that problem is to insert the following call to the constructor of the file processing class:
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
Concerning the shell:
I use BusyBox (its light) which doesn't provide locale and the environment variables like LANG=en_US.UTF-8.
For compiling BusyBox configurations can or have to be given containing
CONFIG_LAST_SUPPORTED_WCHAR=0
the number is the last displayable number of the Unicode list, 0 signifies that all characters shall be displayed, it was set to 767 which includes west European characters. The excluded characters are replaced by the character defined in the same configs, in my case it is "?".