我应该在 URI 的查询字符串中编码参数名称吗?

Posted

技术标签:

【中文标题】我应该在 URI 的查询字符串中编码参数名称吗?【英文标题】:Should I encode names of parameters in a query string of a URI? 【发布时间】:2016-11-30 03:18:17 【问题描述】:

我知道我需要在 URI 的查询字符串中对参数的参数进行编码,但是参数名称呢,它们是否也需要编码

【问题讨论】:

我想不出需要对参数名称进行编码的原因。我正在为同样的问题而苦苦挣扎,到目前为止,我的搜索没有任何结果。 【参考方案1】:

是的。查询字符串中的特殊字符在查询字符串中任何地方都有其特殊含义。

如果参数名称是foo=bar,则?foo=bar=something不会被解析为foo=bar等于something

【讨论】:

“不会被解析” - 它取决于解析实现,不是吗(假设,解析实现可能会决定对于每个查询字符串参数都 @ 987654326@ 除了最后一个被忽略)?毕竟= 就是allowed unencoded in a query string。

以上是关于我应该在 URI 的查询字符串中编码参数名称吗?的主要内容,如果未能解决你的问题,请参考以下文章

MS 访问错误:SELECT 语句包含拼写错误或丢失的保留字或参数名称,或者标点符号不正确

不区分大小写的查询字符串请求参数

javascript全局方法

如何编码 URI 参数值?

JS中编码和解码的总结

在Tomcat中自动检测URI编码