Use this function to URL encode a string for use in LoadRunner scripts. The function takes in the original string and the parameter name you wish to save the encoded string out to.
//-----------------------------------------------------------------------
// Function: encodeString
// Inputs: original = The original un-encoded string
// output_param_name = Parameter name the encoded string will be saved to.
// Outputs: <none>
// Description: URL Encodes a string.
//-----------------------------------------------------------------------
void encodeString(const char * original,char * output_param_name)
{
int counter, out_counter;
char * encodedStr = (char *)malloc((strlen(original)*2)+1); // will make sure there is enough room for new string
char buffer[4]; // buffer to hold hexidecimal version of the character
for(counter=0,out_counter=0;counter<(int)strlen(original);counter++,out_counter++)
{
if(isalnum(original[counter]))
encodedStr[out_counter]=original[counter];
else
{
sprintf(buffer, ''%%%X'', original[counter]); //prints %Hex_Value (%20) of the original character
//grabs first three characters of the buffer which is the hex value we want
encodedStr[out_counter++] = buffer[0];
encodedStr[out_counter++] = buffer[1];
encodedStr[out_counter] = buffer[2];
}
}
encodedStr[out_counter]=' '; //end the string
lr_save_string(encodedStr,output_param_name); //save string into parameter
free(encodedStr); //free memory
}