![]() |
1
36
解码,与原稿比较。如果确实不同,则对原始文件进行编码。如果没有区别,则不会对原始文件进行编码。但它仍然没有说明新解码的版本是否仍然是编码的。递归的好任务。 我希望你不能用urlencode写奎因,否则这个算法会卡住。 |
![]() |
2
14
使用regexp检查字符串是否包含非法字符(即在URL编码的字符串中找不到的字符,如空格)。 |
![]() |
3
4
Joel on Software早就有了解决方案-
http://www.joelonsoftware.com/articles/Wrong.html
|
![]() |
4
3
你不能确定,除非你的弦符合某种模式,或者你跟踪你的弦。正如您自己所指出的,编码的字符串也可以被编码,所以您不能通过查看字符串本身来100%确定。 |
![]() |
5
3
尝试解码URL。如果结果字符串比原始字符串短,则原始URL已被编码,否则您可以安全地对其进行编码(或者它未被编码,或者甚至对URL进行后期编码,因此再次编码不会导致错误的URL)。下面是伪代码示例(受Ruby启发):
|
![]() |
6
0
检查您的URL是否有可疑字符[1]。 候选人名单:
我使用:
对于实际编码,我继续执行以下操作: https://stackoverflow.com/a/49796882/1485527 注释 :即使您的URL不包含您可能希望应用的不安全字符,例如对主机名进行punnycode编码。所以还有很大的空间进行额外的检查。 [1]候选人名单可在 URL spec 在第2页。 在我的理解中,在编码检查中应该省略“%”或“”,因为这些字符也可以出现在编码的URL中。 |
![]() |
7
0
如果您想确保字符串编码正确(如果需要编码),只需解码并再次编码。 metacode:
已编码的字符串将保持不变。将对未编码的字符串进行编码。只有URL允许的字符的字符串也将保持不变。 |