使用 stringByAddingPercentEscapesUsingEncoding 的空格编码



我正在使用

[@"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 进行百分比转义,以便远程服务器可以接受您的请求。

最新更新