Objective c 使用stringByAddingPercentEscapesUsingEncoding的空白编码

Objective c 使用stringByAddingPercentEscapesUsingEncoding的空白编码,objective-c,Objective C,我正在使用 [@"iPhone Content.doc" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] 在SKPSMTP消息发送中。但在附件处接收邮件时,我得到的是名称iPhone%20Content.doc——而不是显示空间%20。如何避免/正确编码此问题?如果您在执行字符串时使用编码添加百分比转义符,那么您将在结果字符串中获得百分比符号。。。您可以使用不同的方法,也可以稍后返回并删除百分号 从文档: stri

我正在使用

[@"iPhone Content.doc" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]

在SKPSMTP消息发送中。但在附件处接收邮件时,我得到的是名称
iPhone%20Content.doc
——而不是显示空间
%20
。如何避免/正确编码此问题?

如果您在执行
字符串时使用编码添加百分比转义符,那么您将在结果字符串中获得百分比符号。。。您可以使用不同的方法,也可以稍后返回并删除百分号

从文档:

stringbyaddingpercentescapesusingencode:
返回 使用给定编码确定逃逸百分比的接收器 必须将接收器转换为合法URL字符串

又名“此方法添加百分号”。如果要反转此过程,请使用
stringbyreplacingpercentescapesusingencode


只有一个旁注,
%20
存在,因为空格字符的十六进制表示是20,而%符号是转义符。您只需要对URL执行此操作,因为它们不允许使用空白字符。

我找到了解决问题的方法。实际上,我没有将“”设置为字符串。

当然,远程接收器不能接受带有空格的url,因此我们必须使用
stringByAddingPercentEscapesUsingEncoding
函数转换url地址

此函数将URL表达式中的空格替换为%20。当URL包含非ascii字符时,它特别有用-您必须使用该函数对URL进行百分比转义,以便远程服务器可以接受您的请求