URLはiOSの文字列をエンコードします
-
26-10-2019 - |
質問
ARCを使用してiOS 5アプリで文字列をEncodeしようとしています。
これが私がそれをする方法です:
- (NSString *)escape:(NSString *)text
{
return (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,
(__bridge CFStringRef)text, NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8);
}
次に、次のようなテストデータでそれを呼び出します。
NSLog([self escape:@"kalel///&&&???"]);
しかし、私が得る出力 NSLog
これは:
kalel0.0000000.0000000.00000022623F0.0000000.000000
それは正しくないように思えますが、何が正しくできないとしても
解決
君の escape
機能は問題ありません。問題は、あなたが呼ぶ方法です NSLog
:
escape
文字列を生成します kalel%2F%2F%2F%26%26%26%3F%3F%3F
あなたの入力のために。 NSLog
この文字列をフォーマット文字列として解釈し、すぐにいくつかのゴミを浮動小数点数として印刷します kalel
語!
常に電話する必要があります NSLog
最初の引数として文字列定数があります、例:
NSLog(@"%@", [self escape:@"kalel///&&&???"]);
詩 メモリリークがあります escape
- - あなたがすべき return (__bridge_transfer NSString *)
CFオブジェクトを客観的なc空間に転送するとき。
所属していません StackOverflow