0

ネットワーク プロトコルで文字列を作成していますが、送信しているキーと値のペアで特殊文字をエスケープしたいと考えています。最善のアプローチは何ですか?

たとえば、URL エスケープ スキームでは、スペースは %20 に置き換えられます。

これに対する2つの質問:

1) 最も適切なエスケープ スキームは何ですか (例: url エスケープ)

2) 実際の脱出方法は?(例: URL エスケープが最適なスキームである場合は、stringByAddingPercentEscapesUsingEncoding)

例えば

metadata:key1=value1;key2=value2

この場合、キーまたは値に表示される等号、コロン、セミコロンをエスケープします。

4

2 に答える 2

0

すべてを削除したい場合:; =次に使用できます:

NSCharacterSet *yourCharacterSet = [NSCharacterSet characterSetWithCharactersInString:@";:="];
NSString *escapedString = [initialString stringByTrimmingCharactersInSet:yourCharacterSet];
于 2013-02-22T15:03:03.293 に答える
0

文字列を作成するときに、各キーと値を個別に調整する必要があります。

例えば

NSMutableString *xmitText = [NSMutableString stringWithCapacity:100];

// for each key/value pair:
{
  NSString *key = ...
  key = [key stringByReplacingOccurrencesOfString:@"=" withString:@"\\="];
  key = [key stringByReplacingOccurrencesOfString:@":" withString:@"\\:"];
  key = [key stringByReplacingOccurrencesOfString:@";" withString:@"\\;"];

  // Same for value
  ...
  [xmitText appendFormat:@"%@=%@;", key, value];
}
于 2013-02-22T15:03:27.740 に答える