我需要将字符串“Test €”转换为“Test €” 反之亦然。请注意它是一个字符串,而不是来自 xml。为了您的信息,我正在用 C++ 开发应用程序,并使用 Xerces 进行 XML 解析。请帮助我如何在 C++ 应用程序中实现它。
谢谢,拉姆
我认为这个答案可能取决于平台,尽管我不确定。
您可以使用字符串流和强制转换。如果lookup
是一个包含十进制字符代码的字符串,此函数将返回字符版本:
char fixchar(string lookup){
stringstream converter (lookup);
int i;
converter >> dec >> i;
return (char)i
(请注意,对于前缀为#x
代替的十六进制字符串,#
您可以只使用hex
代替dec
)。
您可以lookup
使用find
原始字符串上的函数来获取字符串。这是一个循环,它使用上述函数将fixd
带有子字符串的字符串(称为 )转换&#x[number]
为没有字符代码的普通字符串:
while (fixd.find("&#x")!=string::npos){
tag = int(fixd.find("&#"));
endtag = int(fixd.find(";"));
fixd = fixd.substr(0,tag) + fixchar(fixd.substr(tag+3,endtag-tag-3)) + fixd.substr(endtag+1, fixd.length()-tag-4);
}
同样,您应该能够通过强制转换来获得字符的 int 版本,之后您可以对它做任何您想做的事情,包括以十进制形式将其添加到字符串中。