From dcb195404d4511bc0a81ddba0a1db90387ed8759 Mon Sep 17 00:00:00 2001 From: dreamsourcelabTAI Date: Fri, 19 Aug 2022 19:46:39 +0800 Subject: [PATCH] fix: support unicode channel name --- DSView/pv/appcontrol.cpp | 3 +++ DSView/pv/utility/encoding.cpp | 16 +++++++++++++--- DSView/pv/utility/encoding.h | 2 ++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/DSView/pv/appcontrol.cpp b/DSView/pv/appcontrol.cpp index 4c058460..d64c9ad7 100644 --- a/DSView/pv/appcontrol.cpp +++ b/DSView/pv/appcontrol.cpp @@ -34,6 +34,7 @@ #include "config/appconfig.h" #include "log.h" #include "utility/path.h" +#include "utility/encoding.h" AppControl::AppControl() { @@ -70,6 +71,8 @@ void AppControl::Destroy(){ bool AppControl::Init() { + pv::encoding::init(); + sr_log_set_context(dsv_log_context()); srd_log_set_context(dsv_log_context()); diff --git a/DSView/pv/utility/encoding.cpp b/DSView/pv/utility/encoding.cpp index 7d4696bf..a891f8c6 100644 --- a/DSView/pv/utility/encoding.cpp +++ b/DSView/pv/utility/encoding.cpp @@ -28,17 +28,27 @@ #include #endif +#ifdef _WIN32 +#include +#endif + namespace pv{ namespace encoding{ + void init() + { +#ifdef _WIN32 + QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); +#endif + } + void set_utf8(QTextStream &stream) { #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) stream.setEncoding(QStringConverter::Utf8); #else - //QTextCodec *code = QTextCodec::codecForName("UTF-8"); - // stream.setCodec(code); - stream.setCodec("UTF-8"); + QTextCodec *code = QTextCodec::codecForName("UTF-8"); + stream.setCodec(code); #endif } } diff --git a/DSView/pv/utility/encoding.h b/DSView/pv/utility/encoding.h index b4e8858b..158714f2 100644 --- a/DSView/pv/utility/encoding.h +++ b/DSView/pv/utility/encoding.h @@ -26,6 +26,8 @@ class QTextStream; namespace pv{ namespace encoding{ + + void init(); void set_utf8(QTextStream &stream); }