繁体   English   中英

将QString转换为Xerces字符串

[英]Convert QString to a Xerces string

我想将QString转换为Xerces-C ++使用的XMLCh const *

前者可以在(我认为)O(1)时间内以主机字节顺序“转换”为NUL终止的const ushort * 后者也是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; 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM