【发布时间】:2014-03-05 00:43:12
【问题描述】:
例如,在 Unix 中,反斜杠 (\) 是常见的转义字符。因此,要在正则表达式中转义句号 (.),可以这样做:
\.
但是使用 % 编码 URL 参数,我们有一个转义字符、%、和一个控制代码,因此与号 (&) 不会变成:
%&
相反,它变成:
%26
有什么理由吗?从表面上看,似乎只是让事情变得更复杂,当我们可以只拥有一个转义字符和一种在必要时自行转义的机制时:
%%
那就是:
- 更容易记住;我们只需要知道要转义哪些字符,而不是转义哪些字符以及转义它们到的内容
- 编码不可知,因为我们不会显式发送 ASCII 或 Unicode 表示,我们只会以 URL 其余部分的编码形式发送它们
- 易于编写编码器:
s/[!\*'();:@&=+$,/?#\[\] "%-\.<>\\^_`{|}~]/%&/g(未经测试!) - 更好,因为我们可以改用
\作为转义字符,这样生活会更简单,而且全年都是夏天
我现在可能有点走神了。有人打我吗? :)
编辑:将“分隔符”的两种用法替换为“转义字符”。
【问题讨论】: