diff --git a/src/VivyApplication.cc b/src/VivyApplication.cc
index 075638a9b25784b45ea64be5195a208210b3e330..7bf1e08b4cc42f28e06570d9f5f3407eb5a50a7e 100644
--- a/src/VivyApplication.cc
+++ b/src/VivyApplication.cc
@@ -5,6 +5,7 @@
 #include <QIcon>
 #include <QFontDatabase>
 #include <locale>
+#include <QTextCodec>
 
 using namespace Vivy;
 
@@ -35,7 +36,8 @@ VivyApplication::setTheme(Theme theme) noexcept
 int
 VivyApplication::exec() noexcept
 {
-    // For MPV
+    // For MPV & Qt
+    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
     std::setlocale(LC_NUMERIC, "C");
 
     // Add fonts
diff --git a/src/VivyCli.cc b/src/VivyCli.cc
index 87e54139c37d6324cca7fcb9945a5bf54d7d664f..0dedba63eb20d103bb628c7a8ad915dfa44ce38d 100644
--- a/src/VivyCli.cc
+++ b/src/VivyCli.cc
@@ -1,5 +1,6 @@
 #include "VivyCli.hh"
 #include <iostream>
+#include <QTextCodec>
 
 using namespace Vivy;
 
@@ -13,12 +14,14 @@ VivyCli::VivyCli(int &argc, char **argv) noexcept
 int
 VivyCli::exec() noexcept
 {
+    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
+
     if ((selectedDoc == nullptr) || (!scriptStore.executeScript(selectedDoc->getUuid())))
         return 1;
 
     for (const auto &str : scriptStore.getLoadedModules()) {
         std::cout << "Module " << str << " was loaded!\n";
-        const auto *mod = scriptStore.getModule(str);
+        [[maybe_unused]] const auto *mod = scriptStore.getModule(str);
     }
     return 0;
 }