0

我有一些内容2ofsjw0234lnc.jpg\t2m03fcsmaokwf.jpg\n想编码为 url 参数,所以我使用如下代码。

NSString * attachsString = [_attachments stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

输出2ofsjw0234lnc.jpg%5ct2m03fcsmaokwf.jpg%5cn 不是我想要2ofsjw0234lnc.jpg%092m03fcsmaokwf.jpg%0d%0a的,转义字符不是我想要的转换。只有“\”已被转换。

那你能给点建议吗?

4

1 回答 1

0

如果你\t输入一个字符串文字,那么在编译时,它会被转换为一个制表符。然后 stringByAddingPercentEscapesUsingEncoding:将选项卡转换为%09. 但是,如果在运行时,字符串具有两个字符\t,则不会与任何其他两个字符有任何不同。在这种情况下,stringByAddingPercentEscapesUsingEncoding:只需看到反斜杠并将其转换为%5c.

如果你想在运行时转换\t\n字符串(不是字符),那么你应该使用:

// note the double backslash for the tab
string = [string stringByReplacingOccurrencesOfString:@"\\t" withString:@"%09"];

重复\n.

于 2012-10-31T16:23:26.620 回答