0
A
回答
1
我认为正确编码的URI应该总是在第二次干净地通过。
原因是您必须正确解析URI,无论如何,因为在URI中提供诸如/ @ . : ? & =
的字符是完全合法的,只要它们出现在正确的位置。
因此,如果它在URI的那部分中不合法,则只编码字符。用这个断言,然后你创建一个在每个位置都合法的编码字符串,所以当你解析它时,没有什么可以编码的。请注意,如果有人在您的URI上抛出一个URI进行编码并且它恰好不明确(即它包含特殊字符,它们会改变URI语法),但它们不能指望正确的结果。
要更直接地回答你的问题,我会说是的:鉴于上述所有情况,你只需要对%
转义序列进行特殊处理。
0
嗯,你怎么知道一个已编码的URI不应该再次被编码?也许这个URI包含,我不知道,例如如何编码URI,如果不能再次进行编码,那么解码会破坏它?
也就是说,你可以检查是否只有允许的字符加%
是否存在,以及是否每个%
后跟一个十六进制数字。如果是,那么很可能(但不能保证)编码已经完成。
+0
我不介意第二种编码本身,我真正不想做的是通过监督某件事来搞砸它。 – imreal
相关问题
- 1. RewriteRule阻止编码
- 2. Android阻止DialogFragment打开两次
- 3. 阻止功能运行两次
- 4. 阻止在android的textwatcher两次运行
- 5. URI编码和HTML编码
- 6. 如何阻止GET方法对URI中的HTML特殊字符进行编码?
- 7. ServiceStack URI编码
- 8. 在响应中阻止URL编码
- 9. 阻止RestSharp参数的编码
- 10. 如何阻止Jsoup编码URL参数?
- 11. 如何阻止HttpClient.GetAsync(uri)挂起?
- 12. 如何阻止Uri root被更改?
- 13. 阻止GET访问某个URI
- 14. URI编码问题
- 15. ASP.Net:RegularExpressionValidator ValidationExpression一次阻止`;`和`-`
- 16. 阻止JavaScript加载不止一次
- 17. 过程两者的编码和解码的URI正确
- 18. 阻止脚本在执行时运行两次
- 19. 如何阻止用户输入两次相同的值?
- 20. PHP机制阻止用户上传两次相同的文件
- 21. PHP - 我如何阻止我的循环注册数据两次?
- 22. webpack - 如何阻止加载器运行两次?
- 23. 阻止用户一次按下两个按钮?
- 24. 如何阻止两次显示相同内容的回显?
- 25. Jquery阻止UI使用两次后不工作?
- 26. 如何在android中一次阻止两个动作
- 27. 表单提交信息两次。你如何阻止它?
- 28. 有没有办法阻止脚本加载两次? JavaScript
- 29. 如何阻止我的sql查询显示结果两次?
- 30. 从表单提交数据到mysql阻止用户两次
我会修改我的答案,其实......处理转义序列不是*特殊处理*。这只是符合RFC的整体处理的一部分。 – paddy