在 URI 中,空格可以编码为+
. 既然如此,那么在创建具有国际前缀的 tel URI 时是否应该对前导加号进行编码?
哪个更好?两者在实践中都有效吗?
<a href="tel:+1234">Call me</a>
<a href="tel:%2B1234">Call me</a>
Run Code Online (Sandbox Code Playgroud)
不。
\n来自RFC 3966 的第 3 节(电话号码的 tel URI):
\n\n\n如果保留字符“+”、“;”、“=”和“?” 用作“tel”URI 组件之间的分隔符,它们不得采用百分比编码。
\n
+
如果 a\xe2\x80\x99 是参数值的一部分,则仅对 a 进行百分比编码:
\n\n如果这些字符 [“+”、“;”、“=”和“?”] 出现在 tel URI 参数值中,则必须进行百分比编码。
\n
I\xe2\x80\x99m 不确定前导+
,这表明 it\xe2\x80\x99s 是一个全局数字,是否算作分隔符,但全局数字的定义说:
\n\n全局唯一编号由前导“+”字符标识。
\n
所以它指的是+
,而不是百分比编码的东西。
而且这些示例清楚地表明 it\xe2\x80\x99s 不应该进行百分比编码,例如:
\n\n\nRun Code Online (Sandbox Code Playgroud)\ntel:+1-201-555-0123\n
请注意,URI 中的空格tel
(例如,参数值中)可能不会用+
. 在任何 URI 中都不能使用+
代替空格字符;%20
it\xe2\x80\x99s 只能在 URI 方案明确定义的 URI 中使用。
归档时间: |
|
查看次数: |
1130 次 |
最近记录: |