-2

これは私の文字列です。

NSString *str=@"A & B";

今私はそれをNSUTF8StringEncodingに変換しています。

str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"str: %@", str);

スペースは%20に置き換えられますが、&は%26に置き換えられません。

nslogショー

str: A%20&%20B

これも機能していません

NSString *str=@"(A) & (B)";
str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"str: %@", str);

nslogショー

str: (A)%20&%20(B)

これが必要なのは、これをWebサービスのパラメーター値として渡す必要があるためです。誰もがこれについて考えています。この問題について私を助けてください。いい答えをいただければ幸いです

4

1 に答える 1

3

あなたはそれをするために使うことができますCFURLCreateStringByAddingPercentEscapes()

NSString *string = ...;
NSString *encodedString = CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (__bridge CFStringRef)string, NULL, CFSTR("!*'();:@&=+$,/?%#[]"), kCFStringEncodingUTF8));
于 2013-02-28T10:09:15.533 に答える