GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — sqlitebrowser/src/Data.cpp at master · lineCode/sqlitebrowser Expand file tree/ Copy pathData.cppMore file actions 59 lines (51 loc) · 1.72 KB / Copy pathData.cppFile metadata and controls59 lines (51 loc) · 1.72 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 #include "Data.h" #include <QTextCodec> // Note that these aren't all possible BOMs. But they are probably the most common ones. // The size is needed at least for the ones with character zero in them. static const QByteArray bom3("\xEF\xBB\xBF", 3); static const QByteArray bom2a("\xFE\xFF", 2); static const QByteArray bom2b("\xFF\xFE", 2); static const QByteArray bom4a("\x00\x00\xFE\xFF", 4); static const QByteArray bom4b("\xFF\xFE\x00\x00", 4); bool isTextOnly(QByteArray data, const QString& encoding, bool quickTest) { // If the data starts with a Unicode BOM, we always assume it is text if(startsWithBom(data)) return true; // Truncate to the first couple of bytes for quick testing if(quickTest) data = data.left(512); // Convert to Unicode if necessary if(!encoding.isEmpty()) data = QTextCodec::codecForName(encoding.toUtf8())->toUnicode(data).toUtf8(); // Perform check return QString(data).toUtf8() == data; } bool startsWithBom(const QByteArray& data) { if(data.startsWith(bom3) || data.startsWith(bom2a) || data.startsWith(bom2b) || data.startsWith(bom4a) || data.startsWith(bom4b)) return true; else return false; } QByteArray removeBom(QByteArray& data) { if(data.startsWith(bom3)) { QByteArray bom = data.left(3); data.remove(0, 3); return bom; } else if(data.startsWith(bom2a) || data.startsWith(bom2b)) { QByteArray bom = data.left(2); data.remove(0, 2); return bom; } else if(data.startsWith(bom4a) || data.startsWith(bom4b)) { QByteArray bom = data.left(4); data.remove(0, 4); return bom; } else { return QByteArray(); } } |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |