Вторую ссылку уже видел. Увы, решения там нет. Да и проблема не в том, что данные пишутся не так, с этим как раз все в порядке. Нужно именно узнать что за кодировка используется в системе. Например, в Linux у меня системная UTF-8, в винде — CP1251. Но и там, и там QTextCodec::codecForLocale()->name() возвращает "System".
3 - я ссылка на stackoverflow
Там написаны названия api функций для windows для определения кодировки, конкретно GetACP и GetOEMCP
а ссылку на багтрекер дал, что бы просто посмотреть что о проблеме известно, но заниматься ее решением не хотят