C++ 将QString转换为Xerces字符串
我想将a转换为Xerces-C++使用的C++ 将QString转换为Xerces字符串,c++,string,qt,qt4,xerces-c,C++,String,Qt,Qt4,Xerces C,我想将a转换为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::
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;
}
我曾经想到过类似的东西,但我在Xerces-C文档中找不到它是需要主机字节顺序还是网络字节顺序。谷歌搜索了一下发现:啊,我没看到。谢谢(这里也有:)总是更好的来源:)