// THIS IS A HELPER FUNCTION. // PURPOSE OF THIS FUNCTION IS TO GENERATE A HEX REPRESENTATION OF GIVEN CHARACTER std::string CURLEncode::decToHex(char num, int radix) { int temp=0; std::string csTmp; int num_char; num_char = (int) num; // ISO-8859-1 // IF THE IF LOOP IS COMMENTED, THE CODE WILL FAIL TO GENERATE A // PROPER URL ENCODE FOR THE CHARACTERS WHOSE RANGE IN 127-255(DECIMAL) if (num_char < 0) num_char = 256 + num_char; while (num_char >= radix) { temp = num_char % radix; num_char = (int)floor((float)num_char / radix); csTmp = hexVals[temp]; } csTmp += hexVals[num_char%16]; if(csTmp.size() < 2) { csTmp += '0'; } std::string strdecToHex(csTmp); // Reverse the String std::reverse(strdecToHex.begin(),strdecToHex.end()); return strdecToHex; }
// THIS IS A HELPER FUNCTION. // PURPOSE OF THIS FUNCTION IS TO GENERATE A HEX REPRESENTATION OF GIVEN CHARACTER CString CURLEncode::decToHex(char num, int radix) { int temp=0; CString csTmp; int num_char; num_char = (int) num; // ISO-8859-1 // IF THE IF LOOP IS COMMENTED, THE CODE WILL FAIL TO GENERATE A // PROPER URL ENCODE FOR THE CHARACTERS WHOSE RANGE IN 127-255(DECIMAL) if (num_char < 0) num_char = 256 + num_char; while (num_char >= radix) { temp = num_char % radix; num_char = (int)floor((( double)num_char / ( double)radix)); csTmp = hexVals[temp]; } csTmp += hexVals[num_char]; if(csTmp.GetLength() < 2) { csTmp += '0'; } CString strdecToHex(csTmp); // Reverse the String strdecToHex.MakeReverse(); return strdecToHex; }