我知道php的 http_build_query() url对查询字符串中的反斜杠字符进行编码。我还知道反斜杠是一个保留字符,因此这是该函数所需的行为。我见过我尊敬的程序员在他们的查询字符串中使用未编码的反斜杠,并且一直想这样做,让我的url看起来更好。当我避免对反斜杠进行url编码时,我会遇到什么不好的事情(如果有的话)?
http_build_query()
我甚至开始考虑打破url编码惯例的原因是,谷歌在查询字符串中使用了加号。有人知道他们这样做会发生什么不好的事情吗?
我最终试图解决的问题是以某种方式界定我的 ?q=MVC 调用时使用一个可读、url安全的字符,而不必设置多个查询变量。
?q=MVC
这个 RFC 非常清楚这一点:
query=*(pchar/“/”/“?”) 字符斜线(“/”)和问号(“?”)可能表示数据 在查询组件中。小心一些老的、错误的 实现可能无法正确处理此类数据。。。
query=*(pchar/“/”/“?”)
字符斜线(“/”)和问号(“?”)可能表示数据 在查询组件中。小心一些老的、错误的 实现可能无法正确处理此类数据。。。
因此,在查询部分使用斜线是可以的(除非您必须处理2005年“旧”的实现)。