如何在 Swift 中创建 URL 时保留方括号?

问题描述 投票:0回答:1

我有

let urlString = "https://example.com/[path]/file.txt"
。 如何创建 URL 对象,但保留方括号而不将其转换为 %5B 和 %5D。 谢谢!

swift url networking
1个回答
0
投票

TL;DR:你不能,按设计。那不是一个有效的 URL,所以不能用

URL
来表达。

长版:

URI 的

path
部分(包括 URL)由 RFC 3986 第 3.3 节 定义。每个段中允许出现的字符(
/
之间)称为
pchar
,定义如下:

pchar       = unreserved / pct-encoded / sub-delims / ":" / "@"
unreserved  = ALPHA / DIGIT / "-" / "." / "_" / "~"
pct-encoded = "%" HEXDIG HEXDIG
sub-delims  = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="

[
]
不在该列表中,因此不能在路径中。您必须对它们进行百分比编码。

您可以自由创建包含这些字符的字符串,但它不能是 URL。

© www.soinside.com 2019 - 2024. All rights reserved.