首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XMLString::transcode的用途

XMLString::transcode的用途
EN

Stack Overflow用户
提问于 2012-03-23 00:29:14
回答 1查看 18.5K关注 0票数 14

我似乎不理解XMLString::transcode(XMLCh*)XMLString::transcode(char*)的用途,因为显然我不理解XMLCh*char*之间的区别。有没有人能帮我说清楚点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-23 04:52:18

Xerces在内部将信息编码为UTF-16。UTF-16数据使用XMLCh数据类型存储。

“c-style”字符串使用本地代码页中的char (可能是UTF-8,但这取决于平台和设置),您可以使用transcode在两者之间进行转换。

例如,如果您希望将一些数据从Xerces提供给另一个库,而该库需要本地代码页中的文本,则需要对其执行transcode操作。此外,如果您有char数据并希望将其提供给Xerces,则需要将其transcodeXMLCh,因为这是Xerces所理解的。

例如:

代码语言:javascript
复制
// to local code page
DOMNode *node = ...;
char* temp = XMLString::transcode(node->getNodeValue()); 
std::string value(temp);
XMLString::release(&temp); 

// from local code page
DOMElement *element = ...;
XMLCh *tag = XMLString::transcode("test");
DOMNodeList *list = element->getElementsByTagName(tag);
XMLString::release(&tag);

别忘了释放字符串!更好的方法是围绕它编写一些包装器,但在互联网上有可用的examples (只需搜索一个名为XercesString的类)。

如果您想了解更多关于编码的知识,我认为您应该阅读The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)

票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9826518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档