diff --git a/src/blackgui/editors/fsdsetupform.cpp b/src/blackgui/editors/fsdsetupform.cpp index 4e6a7f9c2..cc88ee925 100644 --- a/src/blackgui/editors/fsdsetupform.cpp +++ b/src/blackgui/editors/fsdsetupform.cpp @@ -37,7 +37,7 @@ namespace BlackGui CFsdSetup CFsdSetupForm::getValue() const { if (!this->isEnabled()) { return this->getDisabledValue(); } - CFsdSetup s(ui->le_TextCodec->text().trimmed().toLower()); + CFsdSetup s(ui->le_TextCodec->text().trimmed()); s.setSendReceiveDetails( ui->cb_AircraftPartsSend->isChecked(), ui->cb_AircraftPartsReceive->isChecked(), ui->cb_GndFlagSend->isChecked(), ui->cb_GndFlagReceive->isChecked(), diff --git a/src/blackmisc/network/fsdsetup.h b/src/blackmisc/network/fsdsetup.h index 9c06ae0aa..e505d3955 100644 --- a/src/blackmisc/network/fsdsetup.h +++ b/src/blackmisc/network/fsdsetup.h @@ -78,7 +78,7 @@ namespace BlackMisc const QString &getTextCodec() const { return m_textCodec; } //! Set codec - void setTextCodec(const QString &codec) { m_textCodec = codec.trimmed().toLower(); } + void setTextCodec(const QString &codec) { m_textCodec = codec.trimmed(); } //! Get send / receive details SendReceiveDetails getSendReceiveDetails() const; diff --git a/tests/blackmisc/teststringutils/teststringutils.cpp b/tests/blackmisc/teststringutils/teststringutils.cpp index 0b6ef6a93..4c6093eb9 100644 --- a/tests/blackmisc/teststringutils/teststringutils.cpp +++ b/tests/blackmisc/teststringutils/teststringutils.cpp @@ -18,6 +18,7 @@ #include #include +#include using namespace BlackMisc; @@ -34,6 +35,7 @@ namespace BlackMiscTest void testIndexOf(); void testSplit(); void testTimestampParsing(); + void testCodecs(); }; void CTestStringUtils::testRemove() @@ -138,6 +140,23 @@ namespace BlackMiscTest qDebug() << "Parsing date/time, optimized" << elapsedOptimized << "vs. QDateTime: " << elapsedQt; QVERIFY2(elapsedOptimized < elapsedQt, "Expect optimized being faster as QDateTim::fromString"); } + + void CTestStringUtils::testCodecs() + { + QTextCodec *latin1 = QTextCodec::codecForName("latin1"); + QTextCodec *cp1251 = QTextCodec::codecForName("windows-1251"); + QTextCodec *utf8 = QTextCodec::codecForName("UTF-8"); + const QString testEnglish = QStringLiteral(u"test"); + const QString testRussian = QStringLiteral(u"ั‚ะตัั‚"); + bool okEn1 = latin1->toUnicode(latin1->fromUnicode(testEnglish)) == testEnglish; + bool okEn2 = utf8->toUnicode(utf8->fromUnicode(testEnglish)) == testEnglish; + bool okRu1 = cp1251->toUnicode(cp1251->fromUnicode(testRussian)) == testRussian; + bool okRu2 = utf8->toUnicode(utf8->fromUnicode(testRussian)) == testRussian; + QVERIFY2(okEn1, "English \"test\" equal after round-trip with latin1"); + QVERIFY2(okEn2, "English \"test\" equal after round-trip with utf8"); + QVERIFY2(okRu1, "Russian \"test\" equal after round-trip with cp1251"); + QVERIFY2(okRu2, "Russian \"test\" equal after round-trip with utf8"); + } } //! main