|
From: Tapio V. <aa...@us...> - 2011-02-07 08:14:50
|
Module: editor
Branch: master
Commit: 96d302203f2fbb44ae008ddbc2b3c7f7bf74f82e
Author: Tapio Vierros <tap...@gm...>
Date: Mon Feb 7 10:13:43 2011 +0200
Improve codec detection: UTF-8 and Latin1 is now auto-detected.
---
textcodecselector.hh | 18 +++++++++++++-----
1 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/textcodecselector.hh b/textcodecselector.hh
index 79cc4bc..0e62c18 100644
--- a/textcodecselector.hh
+++ b/textcodecselector.hh
@@ -95,11 +95,19 @@ public:
QString data = "";
QByteArray ba = file.readAll();
if (!ba.isEmpty()) {
- data = QString::fromLocal8Bit(ba, ba.size());
- if (data.toLocal8Bit().size() != ba.size()) {
- // Not UTF8 :(
- QTextCodec* codec = codecForContent(ba, parent);
- if (codec) data = codec->toUnicode(ba);
+ data = QString::fromUtf8(ba, ba.size());
+ if (data.toUtf8().size() != ba.size()) {
+ // Not UTF-8 :(
+ data = QString::fromLatin1(ba, ba.size());
+ if (data.toLatin1().size() != ba.size()) {
+ // Not Latin1 :(
+ data = QString::fromLocal8Bit(ba, ba.size());
+ if (data.toLocal8Bit().size() != ba.size()) {
+ // Not Local 8-bit :(
+ QTextCodec* codec = codecForContent(ba, parent);
+ if (codec) data = codec->toUnicode(ba);
+ }
+ }
}
}
return data;
|