URL编码问题%3D而不是(=)

时间:2014-05-16 00:14:22

标签: url encoding

我有一个从搜索表单中的变量显示的网址,但是由于网址编码,它将“%3d”代替“=”符号,这显然不起作用。

我知道你不能“关闭”url编码可以吗?你不必将其设置为允许特殊字符吗?

以下是代码:同样,我需要在下面的=符号显示在结果网址中,而不是%3d

<?php _e('Job Type'); ?><br />
    <select name="custom_field_id[]=10" class="do_input2">
    <option value=""></option>
    <option value="custom_field_value_10=Full-time">Full-time</option>
    <option value="custom_field_value_10=Part-time">Part-time</option>
    </select>

1 个答案:

答案 0 :(得分:3)

您的意思是您希望提交的表单数据如下所示:

custom_field_id[]=10=custom_field_value_10=Full-time

在URL查询字符串中,还是在application/x-www-webform-urlencoded请求的POST正文中?如果是这样,那么不,你不能这样做。这违反了URL和application/x-www-webform-urlencoded规范。 =是一个保留的分隔符,在namevalue字段中无法显示为未编码,必须将其编号为%3D

custom_field_id%5B%5D%3D10=custom_field_value_10%3DFull-time

接收方有责任对提交的数据进行URL解码,然后再对其进行处理。因此,它会看到custom_field_id[]=10custom_field_value_10=Full-time值,就像它们出现在原始HTML中一样。