0

我想在 Windows 平台上从 XML 文件中读取和写入阿拉伯字符。我的 c++ 程序将 Xerces 用于 XML 文件。正如 Xerces 文档所指出的,它支持 Unicode 字符。我用

xercesc::XMLString::transcode()

喜欢

xercesc::XMLString::transcode("محمد")

方法,但它返回???? 特点。怎么了?(在 Xerces 文档中提示 XMLCh 是 wchar_t)

4

1 回答 1

0

答案很简单。搜索后我得到了它。XMLCh 是 wchat_t 的 typedef,因此对于某些方法,例如 xercesDomParser->parser,它以 XMLCh* 作为参数,如果输入是 wstring 类型,则使用 c_str()。例如:

parser.parse(input.c_str());

如果输入是字符串类型,请使用 XMLString::transcode() 方法。例如:

parser.parse(XMLString::transcode(stringVariable));

另一面是wstring作为 xerces 方法的输出。您应该简单地使用一个wstring变量并对其进行初始化。例如xerces::XMLException::getMessage(),将返回 XMLCh* 作为输出。你可以这样对待:

wstring test=wstring(xerces::XMLException::getMessage());

如果您想要字符串,您可以再次使用转码方法,例如

char* test=xerces::XMLString::transcode(xerces::XMLException::getMessage());
于 2013-11-10T05:40:57.523 回答