Заметил странную особенность, что даже в пустой строке есть 2 байта, как оказалось их просто можно удалить из начала и прекрасно работает, списибо!
QByteArray Packets::changeEncoding(QString instr) {
QTextCodec *codec_utf8 = QTextCodec::codecForName("UTF-8");
QTextCodec *codec_utf16le = QTextCodec::codecForName("UTF-16LE");
QByteArray utf8_bytes = instr.toStdString().c_str();
return codec_utf16le->fromUnicode(codec_utf8->toUnicode(utf8_bytes)).remove(0, 2);
}