summaryrefslogtreecommitdiffstats
path: root/src/corelib/codecs/qtextcodec.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/codecs/qtextcodec.cpp')
-rw-r--r--src/corelib/codecs/qtextcodec.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/corelib/codecs/qtextcodec.cpp b/src/corelib/codecs/qtextcodec.cpp
index 2522cefeaa..462c55e103 100644
--- a/src/corelib/codecs/qtextcodec.cpp
+++ b/src/corelib/codecs/qtextcodec.cpp
@@ -152,20 +152,23 @@ static QTextCodec *setupLocaleMapper()
// already setup
return globalData->codecForLocale;
-#if defined(Q_OS_WIN32) || defined(Q_OS_WINCE)
- globalData->codecForLocale = QTextCodec::codecForName("System");
-#else
-
#if !defined(QT_BOOTSTRAPPED)
QCoreApplicationPrivate::initLocale();
#endif
+
+#if defined(Q_OS_WIN) || defined(Q_OS_WINCE)
+ globalData->codecForLocale = QTextCodec::codecForName("System");
+#elif defined(Q_OS_MAC) || defined(Q_OS_IOS) || defined(Q_OS_LINUX_ANDROID) || defined(Q_OS_QNX)
+ globalData->codecForLocale = QTextCodec::codecForName("UTF-8");
+#else
+
// First try getting the codecs name from nl_langinfo and see
// if we have a builtin codec for it.
// Only fall back to using iconv if we can't find a builtin codec
// This is because the builtin utf8 codec is around 5 times faster
// then the using QIconvCodec
-#if defined (_XOPEN_UNIX) && !defined(Q_OS_QNX) && !defined(Q_OS_OSF) && !defined(Q_OS_LINUX_ANDROID)
+#if defined (_XOPEN_UNIX) && !defined(Q_OS_OSF)
char *charset = nl_langinfo(CODESET);
if (charset)
globalData->codecForLocale = QTextCodec::codecForName(charset);
@@ -237,7 +240,6 @@ static QTextCodec *setupLocaleMapper()
}
// If everything failed, we default to 8859-1
- // We could perhaps default to 8859-15.
if (!globalData->codecForLocale)
globalData->codecForLocale = QTextCodec::codecForName("ISO 8859-1");
#endif