“application/xwwwformurlencoded”和空值的标准是什么?

2024-06-25 23:46:06 发布

您现在位置:Python中文网/ 问答频道 /正文

不久前,我注意到在将映射name: value编码为'application/x-www-form-urlencoded时,它会呈现如下内容(这里我使用Python):

>>> from urllib import urlencode
>>> urlencode({'hello': '', 'blabla': 'hihi'})
'blabla=hihi&hello='

但是解析(至少在Python中)只会剥离具有空值的对:

^{pr2}$

所以。。。这是标准行为吗?在哪里可以找到关于www-form-urlencoded应该如何解析的参考?我在google上搜索了一段时间,找到了uri的RFCs,表单的W3c文档,等等,但是对于空值应该如何处理却一无所知。有人能给我一个指针吗???在


Tags: namefromform内容hello编码applicationvalue
1条回答
网友
1楼 · 发布于 2024-06-25 23:46:06

据我所知,这是没有“标准”的。唯一描述的(在html规范中,正如您所发现的),是浏览器应该如何编码表单数据。对于空值,您想做什么(或不做什么)取决于您。在

请注意,urlparse.parse_qs()有一个可选参数,keep_blank_values,它允许您控制它应该如何处理这些参数:

>>> from urlparse import parse_qs
>>> parse_qs('blabla=hihi&hello=', keep_blank_values=True)
{'blabla': ['hihi'], 'hello': ['']}

相关问题 更多 >