OS は Windows 7
ソースは UTF-8 で保存
gcc でコンパイル

QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8"));
QString img_out_filename(trUtf8("%1/%2").arg("path_to_home").arg("日本語.png"));
QImage img_jp(":/qrc/img_jp");
if(!img_jp.isNull()) img_jp.save(img_out_filename);

hoge.qrc には <file alias="img_jp">日本語.png</file> (これも UTF-8 で保存)

とやるとファイルが作成されて
中身はhoge.qrcで記述した日本語.pngの内容と同じものが正しく出力されるのですが
ファイル名だけ文字化けします
文字化けした文字列はコードを見ると UTF-8 で出力されているようです
たぶん img_jp.save(img_out_filename) のところで
WindowsAPI に対して unicode で保存されず
ベタに UTF-8 で保存されちゃってるのだと思いますが
どう対処するのが正しいでしょう?