0

iPhone アプリにある PHP スクリプトにログイン資格情報を渡そうとしています。特殊文字を含むパスワードを取得すると、パスワードに特定の文字、特にパーセント記号がありません。テキストをエンコードしようとしていますが、送信前でもパーセント記号がありません。

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

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

これはコンソールに表示されるものです:

!@#$^&*()

!@2259.719281E-314&*()

パーセント記号を削除する理由はありますか?

4

2 に答える 2

2

NSLogの最初の引数はフォーマット文字列であり、'%'はフォーマット文字列内で特別な意味を持ちます。代わりに、次のようなことを行う必要があります。

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

(これ%@は、NSStringを表示するためのフォーマット文字列シーケンスです。)

于 2010-04-28T03:14:44.860 に答える
0

FooBabel.comでテストしたところ、次のようになっているはずです %21%40%23%24%25%5E%26*%28%29

于 2011-04-05T17:20:26.083 に答える