转换字符串 “\ u0026” 到 “&” 在C++

问题描述:

我从后得到一个字符串,但该字符串就这样产生了:转换字符串 “ u0026” 到 “&” 在C++

重新= 784D30879 \ u0026rr = POH0525 \ u0026tt = 525.100000 \ u0026id = 0958567C-20DC-44B4-9FD0-1AD13453DEBF4

,我想:

重新= 784D30879 & RR = POH0525 & TT = 525.100000 & ID = 0958567C-20DC-44B4-9FD0-1AD13453DEBF4

我正在使用函数来替换在串E字符,但它向我发送了以下错误:a universal character name cannot designate a character in the basic character set

所以我调用该函数:

message = replaceChars(message, string("\u0026"), string("&")); 

这是函数:

string replaceChars(string stringToChange, const string& charToChange, const string& newChar) 
{ 
    size_t initialPosition = 0; 

    while((initialPosition= stringToChange.find(charToChange, initialPosition)) != string::npos) 
    { 
     stringToChange.replace(initialPosition, charToChange.length(), newChar); 
     initialPosition += newChar.length(); 
    } 

    return stringToChange; 
} 

我无法理解的错误。

+0

你在哪里得到从字符串,并有可能得到它*不*&符号逃生? –

您应该使用"\\u0026",而不是"\u0026"