使用stringByAddingPercentEscapesUsingEncoding进行空白编码

时间:2012-08-15 12:04:10

标签: objective-c

我使用

在字符串中编码空格
[@"iPhone Content.doc" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]

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

3 个答案:

答案 0 :(得分:0)

如果您正在执行stringByAddingPercentEscapesUsingEncoding,那么您将在结果字符串中获得百分号...您可以使用不同的内容,或者稍后重新删除百分号。

来自doc:

  

stringByAddingPercentEscapesUsingEncoding: 返回的表示形式   接收器使用给定的编码来确定逃逸百分比   将接收者转换为合法的URL字符串所必需的。

又名,“这种方法增加百分号”。如果要撤消此过程,请使用stringByReplacingPercentEscapesUsingEncoding

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

答案 1 :(得分:0)

我的问题得到了解决方案。实际上我错过了将“”设置为字符串。

答案 2 :(得分:0)

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

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