summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@nokia.com>2012-07-20 11:02:40 +0200
committerQt by Nokia <qt-info@nokia.com>2012-07-31 11:11:54 +0200
commitd4510d0d31759a7b5993d3b9e710642a9d340f53 (patch)
treee1ba8373d0a9484bc8e5edcf4ef37acbc641d273
parente41129c8593e58e800846e9c6219a79a7741cb2f (diff)
Use utf-8 as the locale codec where it makes sense
Use utf8 as the fallback codec in case we can't determine something else instead of latin1. Also use utf8 for Mac, iOS, Android and QNX. Change-Id: I15dc85d2406b1ebdfacff25f45f8b6854c52b97e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
-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