上下文:ASP.NET MVC 2.0
我想支持以下格式的网址:
wowreforge.com?Exp=220,Hit<461,Mastery>Haste>Crit
它适用于FF和IE。它们在输入时都能正确转义符号。
我的问题:有没有理由不使用上面的网址表单?
背景
我希望URL可用作可以粘贴到线程讨论或即时消息中的通用公式。类似的东西:
我认为对于战斗流氓 wowreforge.com?Exp=220,Hit<461,Mastery>Haste>Crit 是最好的再造策略。
欢迎任何其他实施方案。
答案 0 :(得分:1)
您应该始终通过Web框架的URL Encode功能运行此类值。这些函数将编码需要编码的值,而不编码那些不需要编码的值。
这比尝试猜测查询字符串中的哪些字符是正确的,哪些不是。
更好另请注意,您应该对每个查询字符串参数的值应用此编码 - 而不是整个查询字符串本身。 (否则你最终会错误地编码拆分参数的&符号),例如
答案 1 :(得分:1)
<
和>
,必须使用百分比编码进行编码。
但除此之外,浏览器显示网址与实际编码方式之间存在差异。例如,现代浏览器显示百分比编码的单词序列,这些单词表示UTF-8中的字符作为它们所代表的字符而不是编码的单词。因此,http://en.wikipedia.org/wiki/%C3%9F
之类的网址通常会显示为http://en.wikipedia.org/wiki/ß
,但实际上会将其编码为http://en.wikipedia.org/wiki/%C3%9F
。
答案 2 :(得分:0)
“...只有字母数字[0-9a-zA-Z],特殊字符”$ -_。+!*'(),“[不包括引号 - ed]和用于他们的保留字符保留的目的可以在URL中以未编码的方式使用。“
尝试使用ASCII控制代码对所有特殊字符进行编码。这是通过URL发送特殊字符的安全方式。