我有一些像2ofsjw0234lnc.jpg\t2m03fcsmaokwf.jpg\n
这样的内容想要编码为url参数,所以我使用的代码如下所示。
NSString * attachsString = [_attachments stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
输出为2ofsjw0234lnc.jpg%5ct2m03fcsmaokwf.jpg%5cn
这不是我想要的,2ofsjw0234lnc.jpg%092m03fcsmaokwf.jpg%0d%0a
,逃脱角色不是我想要的转换。只有“\”已被转换。
那你能给点什么建议呢?
答案 0 :(得分:0)
如果将\t
放在字符串文字中,那么在编译时,它会转换为制表符。然后stringByAddingPercentEscapesUsingEncoding:
会将标签转换为%09
。但是,如果在运行时,字符串具有两个字符\t
,则不会将其与任何其他两个字符区别开来。在这种情况下,stringByAddingPercentEscapesUsingEncoding:
只会看到反斜杠并将其转换为%5c
。
如果要在运行时转换\t
或\n
字符串(不是字符),则应使用:
// note the double backslash for the tab
string = [string stringByReplacingOccurrencesOfString:@"\\t" withString:@"%09"];
重复\n
。