예제 #1
0
// 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;
}
예제 #2
0
파일: URLEncode.cpp 프로젝트: enildne/zest
// 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;
}