brixton
16th November 2010, 06:33
I have the following code (map is a QVariantMap):
void XmlHandler::addToMap(QString key, QVariant value)
{
qDebug() << "key:" << key << " value:" << value;
qDebug() << "before: " << map;
map.insert(key, value);
qDebug() << "after: " << map << endl;
}
Which produces the following output:
key: "a" value: QVariant(QString, "ab")
before: QMap()
after: QMap(("a", QVariant(QString, "ab") ) )
key: "b" value: QVariant(QString, "ab")
before: QMap(("a", QVariant(QString, "ab") ) )
after: QMap(("a", QVariant(QString, "ab") ) ( "b" , QVariant(QString, "ab") ) )
However... When I use Arabic input, the QMap is courrupted:
key: "ا" value: QVariant(QString, "او")
before: QMap()
after: QMap(("ا", QVariant(QString, "او") ) )
key: "و" value: QVariant(QString, "او")
before: QMap(("ا", QVariant(QString, "او") ) )
after: QMap(("ا", QVariant(QString, "او") ) ( "و" , QVariant(QString, "او") ) )
You can see that the keys and values have been mixed after the second insert!
I assumed I was making a mistake somewhere, but I sure don't see one. Can someone suggest what might be going wrong?
Thanks, B
void XmlHandler::addToMap(QString key, QVariant value)
{
qDebug() << "key:" << key << " value:" << value;
qDebug() << "before: " << map;
map.insert(key, value);
qDebug() << "after: " << map << endl;
}
Which produces the following output:
key: "a" value: QVariant(QString, "ab")
before: QMap()
after: QMap(("a", QVariant(QString, "ab") ) )
key: "b" value: QVariant(QString, "ab")
before: QMap(("a", QVariant(QString, "ab") ) )
after: QMap(("a", QVariant(QString, "ab") ) ( "b" , QVariant(QString, "ab") ) )
However... When I use Arabic input, the QMap is courrupted:
key: "ا" value: QVariant(QString, "او")
before: QMap()
after: QMap(("ا", QVariant(QString, "او") ) )
key: "و" value: QVariant(QString, "او")
before: QMap(("ا", QVariant(QString, "او") ) )
after: QMap(("ا", QVariant(QString, "او") ) ( "و" , QVariant(QString, "او") ) )
You can see that the keys and values have been mixed after the second insert!
I assumed I was making a mistake somewhere, but I sure don't see one. Can someone suggest what might be going wrong?
Thanks, B