views:

101

answers:

1

I am trying to pass login credentials to a PHP script that I have in my iPhone app. When I pull a password with special characters the password is missing certain characters especially the percent sign. I am trying to encode the text but even before I send it, the percent sign is missing.

//p_field is a UITextField holding the password: !@#$%^&*()
NSString *tmpPass = [p_field.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

NSLog(p_field.text);
NSLog(tmpPass);

This is what appears in the console:

!@#$^&*()

[email protected]&*()

Is there any reason why it would be dropping the percent sign?

+2  A: 

The first argument to NSLog is a format string, and '%'s have special meaning within the format string. You should instead be doing something like:

NSLog("p_field.text = %@", p_field.text);
NSLog("tmpPass = %@", tmpPass);

(the %@ is the format string sequence for displaying an NSString.)

David Gelhar