From 315744bf2492df897dd04c83fe1b6fafbc793f44 Mon Sep 17 00:00:00 2001 From: Szymon Tomasz Stefanek Date: Sat, 22 Mar 2008 15:38:01 +0000 Subject: Another fix for the xmlreader attempt to nearly-correctly handle the stream encoding git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@1249 17fca916-40b9-46aa-a4ea-0a15b648b75c --- src/modules/objects/class_xmlreader.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/modules/objects/class_xmlreader.cpp') diff --git a/src/modules/objects/class_xmlreader.cpp b/src/modules/objects/class_xmlreader.cpp index d3c355c0a..927dcd80a 100644 --- a/src/modules/objects/class_xmlreader.cpp +++ b/src/modules/objects/class_xmlreader.cpp @@ -29,6 +29,8 @@ #include "kvi_kvs_variantlist.h" #include "kvi_kvs_hash.h" +#include "kvi_qstring.h" + /* @doc: xmlreader @@ -316,7 +318,13 @@ bool KviKvsObject_xmlreader::function_parse(KviKvsObjectFunctionCall *c) m_szLastError = ""; KviXmlHandler handler(this); QXmlInputSource source; - source.setData(szString); + // We have a problem here.. most kvirc functions already interpret the data + // read from files. We should have binary data handling features to get this to work correctly. + // The following snippet of code tries to provide a best-effort workaround. + KviQCString utf8data = KviQString::toUtf8(szString); + QByteArray data = utf8data; + data.truncate(utf8data.length()); // don't include the null terminator in data + source.setData(data); //debug("PARSING(%s) LEN(%d)",szString.utf8().data(),szString.utf8().length()); QXmlSimpleReader reader; reader.setContentHandler(&handler); -- cgit v1.3.1-10-gc9f91