From c09747e1db7adfd5e3d56f98423e9a9ae68a1bbb Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Thu, 2 Jan 2014 12:04:37 +0100 Subject: [PATCH] Assume UTF-8 in TextFileFormat::readFileUTF8 as fallback If the contents is not detected as UTF-8/16/32 (TextFileFormat::detect) and decoding with the given defaultCodec fails, still assume UTF-8. This affects reading in files for code model indexing. Better read in the file with the wrong encoding than not reading it at all. Change-Id: Ibc10b7268ecbed4e7fd50336182f6e71c7d93f5b Reviewed-by: Pawel Faron Reviewed-by: Erik Verbruggen --- src/libs/utils/textfileformat.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/libs/utils/textfileformat.cpp b/src/libs/utils/textfileformat.cpp index c175ce1f4dc..abb2ae0c7a7 100644 --- a/src/libs/utils/textfileformat.cpp +++ b/src/libs/utils/textfileformat.cpp @@ -289,18 +289,13 @@ TextFileFormat::ReadResult TextFileFormat::readFileUTF8(const QString &fileName, Utils::TextFileFormat format = Utils::TextFileFormat::detect(data); if (!format.codec) format.codec = defaultCodec ? defaultCodec : QTextCodec::codecForLocale(); - if (format.codec->name() == "UTF-8") { + QString target; + if (format.codec->name() == "UTF-8" || !format.decode(data, &target)) { if (format.hasUtf8Bom) data.remove(0, 3); *plainText = data; return Utils::TextFileFormat::ReadSuccess; } - - QString target; - if (!format.decode(data, &target)) { - *errorString = QCoreApplication::translate("Utils::TextFileFormat", "An encoding error was encountered."); - return Utils::TextFileFormat::ReadEncodingError; - } *plainText = target.toUtf8(); return Utils::TextFileFormat::ReadSuccess; }