Преобразовать QString в строку Xerces
Вопрос
Я хочу преобразовать QString чтобы XMLCh const *
для использования Xerces-C ++.
Первое может быть «трансформирован» в NUL-конце const ushort *
в байтовом порядке в (я думаю) o (1) время. Последний также является строкой UTF-16, но я не уверен, в каком байте.
Кто -нибудь решал эту проблему раньше? Мне не хочется делать много копирования строки.
Решение
Возможно:
const XMLCh* QtoX(const QString& s) { return (s.utf16()); }
QString XtoQ(const XMLCh* x) { return QString::fromUtf16(x); }
из здесь? У меня нет личного опыта с этим.
Другие советы
QString->XMLCh* QString::toWCharArray(XMLCh* buffer)
XMLCh->QString QString::fromWCharArray(x)
Выделите память для XMLCH:
XMLCh* QString2X(QString _w, MemoryManager *mm =
XMLPlatformUtils::fgMemoryManager) {
XMLCh b[256];
_w.toWCharArray(b);
XMLCh* _x = (XMLCh*) mm->allocate((XMLString::stringLen(b)+1)*sizeof(XMLCh));
XMLString::copyString(_x, b);
return _x;
}
Не связан с StackOverflow