QStringをXerces文字列に変換します
質問
変換したいです QSTRING に XMLCh const *
Xerces-C ++で使用します。
前者はヌル終端に「変換」することができます const ushort *
(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