Кодировка символов в поле пароля - PullRequest
0 голосов
/ 28 апреля 2010

Я пытаюсь передать учетные данные для входа в скрипт PHP, который есть в моем приложении для iPhone. Когда я извлекаю пароль со специальными символами, в нем отсутствуют некоторые символы, особенно знак процента. Я пытаюсь закодировать текст, но даже до его отправки отсутствует знак процента.

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

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

Вот что появляется в консоли:

!@#$^&*()

!@2259.719281E-314&*()

Есть ли какая-то причина, по которой он отбрасывает знак процента?

Ответы [ 2 ]

2 голосов
/ 28 апреля 2010

Первый аргумент NSLog - это строка формата, и '%' имеют особое значение в строке формата. Вместо этого вы должны делать что-то вроде:

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

(%@ - последовательность строк формата для отображения строки NSSt.)

0 голосов
/ 05 апреля 2011

Я протестировал его на FooBabel.com и он должен выглядеть следующим образом: %21%40%23%24%25%5E%26*%28%29 закодировано.

...