Skip to content

Commit

Permalink
fix: detect encoding every time
Browse files Browse the repository at this point in the history
  • Loading branch information
Mythologyli committed Oct 29, 2024
1 parent 1f44e0a commit fd73c17
Showing 1 changed file with 14 additions and 38 deletions.
52 changes: 14 additions & 38 deletions utils/utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,49 +12,25 @@

QString Utils::ConsoleOutputToQString(const QByteArray &byteArray)
{
static QString codeName = "";
if (codeName == "UTF-8")
{
return QTextCodec::codecForName("UTF-8")->toUnicode(byteArray);;
}
else if (codeName == "GBK")
{
return QTextCodec::codecForName("GBK")->toUnicode(byteArray);;
}
else if (codeName == "locale")
QTextCodec *gbkCodec = QTextCodec::codecForName("GBK");
QString gbkStr = gbkCodec->toUnicode(byteArray);
QByteArray gbkByteArrayBack = gbkCodec->fromUnicode(gbkStr);

if (gbkByteArrayBack == byteArray)
{
return QString::fromLocal8Bit(byteArray);
return gbkStr;
}
else
{
QTextCodec *utf8Codec = QTextCodec::codecForName("UTF-8");
QString utf8Str = utf8Codec->toUnicode(byteArray);
QByteArray utf8ByteArrayBack = utf8Codec->fromUnicode(utf8Str);

QTextCodec *gbkCodec = QTextCodec::codecForName("GBK");
QString gbkStr = gbkCodec->toUnicode(byteArray);
QByteArray gbkByteArrayBack = gbkCodec->fromUnicode(gbkStr);
QTextCodec *utf8Codec = QTextCodec::codecForName("UTF-8");
QString utf8Str = utf8Codec->toUnicode(byteArray);
QByteArray utf8ByteArrayBack = utf8Codec->fromUnicode(utf8Str);

if (utf8ByteArrayBack == byteArray && gbkByteArrayBack != byteArray)
{
codeName = "UTF-8";
return utf8Str;
}
else if (gbkByteArrayBack == byteArray && utf8ByteArrayBack != byteArray)
{
codeName = "GBK";
return gbkStr;
}
else if (gbkByteArrayBack == byteArray && utf8ByteArrayBack == byteArray)
{
return utf8Str;
}
else
{
codeName = "locale";
return QString::fromLocal8Bit(byteArray);
}
if (utf8ByteArrayBack == byteArray)
{
return utf8Str;
}

return QString::fromLocal8Bit(byteArray);
}

void Utils::setWidgetFixedWhenHidden(QWidget *widget)
Expand Down

0 comments on commit fd73c17

Please sign in to comment.