-1

我需要将字符串“Test €”转换为“Test €” 反之亦然。请注意它是一个字符串,而不是来自 xml。为了您的信息,我正在用 C++ 开发应用程序,并使用 Xerces 进行 XML 解析。请帮助我如何在 C++ 应用程序中实现它。

谢谢,拉姆

4

1 回答 1

0

我认为这个答案可能取决于平台,尽管我不确定。

您可以使用字符串流和强制转换。如果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 版本,之后您可以对它做任何您想做的事情,包括以十进制形式将其添加到字符串中。

于 2013-03-07T07:07:51.570 回答