我们的图像服务器允许我们传递触发某些图像操作操作的url参数。例如,urlhttps://www.example.com/i/example/10570250?layer0=[w=600&h=1000&bg=rgba(228,228,228,125)&cm=multi]缩放图像并应用混合模式。
问题是,一旦将该字符串馈送到URL对象(例如URL(string: "https://www.example.com/i/example/10570250?layer0=[w=600&h=1000&bg=rgba(228,228,228,125)&cm=multi]")中)中,括号就会被转义,图像服务器就会停止应用这些操作。
网址变成:https://www.example.com/i/example/10570250?layer0=%5Bw=600&h=1000&bg=rgba(228,228,228,125)&cm=multi%5D
我可以防止URL转义括号吗?或者,在将url传送到URL(string:)之前,是否有其他方式转义url,映像服务器可能会接受?

最佳答案

不允许在URL中包含[ ]。考虑更改您的API调用,使之适合您。
由Internet协议文本地址(版本6)标识的主机
[RFC3513]或更高版本,通过包含IP文本来区分
方括号内(“[”和“])。这是唯一一个
URI语法中允许使用方括号字符。在
对未来的展望,尚未定义的IP文字地址格式,
实现可以使用可选的版本标志来指示
格式显式,而不是依赖于启发式确定。
Reference

10-07 20:30