質問

変換したいです QSTRINGXMLCh 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; 
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top