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