我正在使用字符串中的空格编码
[@"iPhone Content.doc" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
在 SKPSMTP 消息发送中。但是,在附件位置接收邮件时,我得到了名称iPhone%20Content.doc
- 而不是它显示的空格%20
。如何避免/正确编码?
我正在使用字符串中的空格编码
[@"iPhone Content.doc" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
在 SKPSMTP 消息发送中。但是,在附件位置接收邮件时,我得到了名称iPhone%20Content.doc
- 而不是它显示的空格%20
。如何避免/正确编码?
远程接收者当然不能接受带有空格的url,所以我们必须使用stringByAddingPercentEscapesUsingEncoding
函数转换URL地址。
此函数将 URL 表达式中的空格替换为 %20。当 URL 包含非 ascii 字符时,它特别有用 - 您已使用该功能对 URL 进行百分比转义,以便远程服务器可以接受您的请求。
我的问题得到了解决方案。实际上我错过了将“”设置为字符串。
如果您这样做,stringByAddingPercentEscapesUsingEncoding
那么您将在结果字符串中获得百分号......您可以使用不同的东西,或者稍后返回并删除百分号。
从文档:
stringByAddingPercentEscapesUsingEncoding:
使用给定的编码返回接收者的表示,以确定将接收者转换为合法 URL 字符串所需的百分比转义。
又名,“此方法添加百分号”。如果要反转此过程,请使用stringByReplacingPercentEscapesUsingEncoding
只是一个旁注,%20
是因为空格字符的十六进制表示是 20 并且 % 符号是转义符。您只需对 URL 执行此操作,因为它们不允许使用空格字符。