我有一个用 UTF-8 编码的 Xerces (2.6) DOMNode 对象。我用这样的方式读取它的 TEXT 元素:
CBuffer DomNodeExtended::getText( const DOMNode* node ) const {
char* p = XMLString::transcode( node->getNodeValue( ) );
CBuffer xNodeText( p );
delete p;
return xNodeText;
}
CBuffer 只是一个缓冲区对象,它最近像在数据库中一样被持久化。
这一直有效,直到在 TEXT 中只有常见的 ASCII 字符。如果我们有即中国人,他们会在行动中迷路transcode
。
我用谷歌搜索了很多寻找解决方案。看起来在 Xerces 3 中,DOMWriter 类应该可以解决问题。使用 Xerces 2.6 我正在尝试 XMLTranscoder,但还没有成功。有人可以帮忙吗?
编辑看起来我错了,DOMWriter 类已经在 Xerces 2.6 中可用。我现在正在尝试基于它的解决方案。