我似乎并不了解XMLString::transcode(XMLCh*)
和XMLString::transcode(char*)
的用途,因为很明显我不明白XMLCh*
和char*
之间的区别。 有人能让我更清楚吗?XMLString :: transcode的用途
10
A
回答
19
Xerces在内部将信息编码为UTF-16。 UTF-16数据使用XMLCh
数据类型进行存储。
“C风格”字符串使用char
这是在本地代码页(可能是UTF-8,但它依赖于平台和设置。)您使用transcode
两个之间的转换。
例如,如果您想将一些数据从Xerces提供给另一个库,并且该库需要本地代码页中的文本,则需要transcode
它。另外,如果您有char
数据并希望将其提供给Xerces,则需要将其transcode
转换为XMLCh
,因为这是Xerces的理解。
例如:
// 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!)
相关问题
- 1. 的Xerces-C:了XmlString ::转码拼图
- 2. 使用了XmlString ::释放(XMLCh ** BUF)的
- 3. 转换到了XmlString XmlNode的
- 4. 使用Python中的libxml2解析XMLString
- 5. Xerces - XmlString到Dom对象
- 6. SimpleXMLElement文件不加载xmlString
- 7. 应用程序挂在XMLString = client.DownloadString(rootURL + basePolicyNumber);
- 8. SQL提取给出的xmlString(甲骨文)
- 9. _never_executed()的用途?
- 10. RemoveAll的用途()
- 11. UIControlStateSelected的用途
- 12. OptionArg的用途
- 13. webAppRootKey的用途?
- 14. CBCharacteristicPropertyBroadcast的用途
- 15. java.library.path的用途
- 16. NSRefreshedObjectsKey的用途
- 17. @SuppressWarnings的用途
- 18. 的用途MapAll(// @)
- 19. constexpr的用途
- 20. Ember.Container的用途
- 21. __init__的用途
- 22. UIGuidedAccessRestrictionDelegate的用途
- 23. ServiceSecurityContext.WindowsIdentity的用途?
- 24. ActionName的用途
- 25. LoweredUserName的用途?
- 26. CALayer的用途?
- 27. AssertRequiredRoles的用途?
- 28. issetugid的用途?
- 29. socket.shutdownOutput()的用途
- 30. django:django.utils.functional.SimpleLazyObject的用途?
感谢,这是非常有帮助! – Glolita 2012-03-23 08:56:36
添加几行代码作为示例,对于像我这样的其他读者会有所帮助! – Jaywalker 2012-04-11 11:02:32