Xerces-C++で使用するQStringをXMLCh const *
に変換したいと考えています。QStringをXerces文字列に変換する
O(1)時間内にホストバイトオーダーでNUL終了のconst ushort *
に変換することができます。後者はUTF-16文字列ですが、どのバイトオーダーであるかわかりません。
誰もこの問題に取り組んでいませんか?私はたくさんの文字列をコピーするような気がしません。
Xerces-C++で使用するQStringをXMLCh const *
に変換したいと考えています。QStringをXerces文字列に変換する
O(1)時間内にホストバイトオーダーでNUL終了のconst ushort *
に変換することができます。後者はUTF-16文字列ですが、どのバイトオーダーであるかわかりません。
誰もこの問題に取り組んでいませんか?私はたくさんの文字列をコピーするような気がしません。
おそらく:hereから
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のドキュメントで見つけることができません-注文。 –
グーグルが少しこれを見つけた:http://web.archiveorange.com/archive/v/yh2do8NlHXpwlbtrr0Uj – dabhaid
ああ、それを見ていない。ありがとう! (また、ここで:http://mail-archives.apache.org/mod_mbox/xerces-c-users/201007.mbox/%[email protected]%3E) –