diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index b5546cb993f4724ae2460a6d5d5ecf3ea47425a9..8f2cb5706e7a1ddd767430e8fc6c734dc8483c45 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -843,7 +843,14 @@ bool GitClient::synchronousLog(const QString &workingDirectory, const QStringLis
     allArguments.append(arguments);
     const bool rc = fullySynchronousGit(workingDirectory, allArguments, &outputText, &errorText);
     if (rc) {
-        *output = commandOutputFromLocal8Bit(outputText);
+        QString encodingName = readConfigValue(workingDirectory, QLatin1String("i18n.logOutputEncoding"));
+        if (encodingName.isEmpty())
+            encodingName = QLatin1String("utf-8");
+        QTextCodec *codec = QTextCodec::codecForName(encodingName.toLocal8Bit());
+        if (codec)
+            *output = codec->toUnicode(outputText);
+        else
+            *output = commandOutputFromLocal8Bit(outputText);
     } else {
         const QString errorMessage = tr("Cannot obtain log of \"%1\": %2").
                                      arg(QDir::toNativeSeparators(workingDirectory),