Ampersands have special meaning in HTTP requests. You'll need to URL encode those parameters to make sure that the server software knows that they are data.
You'll need to do something like this for each parameter in the request string:
NSString* encodedPassword = (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,
(CFStringRef)password1Field.text,
NULL,
(CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ",
CFStringConvertNSStringEncodingToEncoding(NSUTF8Encoding));
Take a look at this reference for a great example of adding your URL encoder to the NSString class: http://madebymany.com/blog/url-encoding-an-nsstring-on-ios
As for your edit, characters like àìú are probably giving you problems because you are using NSASCIIStringEncoding. Try NSUTF8StringEncoding as it supports a much larger range of potential characters than ASCII.