URL Encoding Issue %3D instead of (=)

encoding, url

Solution

Do you mean that you want the submitted form data to look like this:

custom_field_id[]=10=custom_field_value_10=Full-time

In either the URL query string, or in the POST body of an `application/x-www-webform-urlencoded` request? If so, then no, you cannot do that. That is a violation of both the URL and `application/x-www-webform-urlencoded` specifications. `=` is a reserved separator character that cannot appear unencoded in the `name` and `value` fields, it must be url-encoded as `%3D`:

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

It is the receiver's responsibility to url-decode the submitted data before then processing it. As such, it would see `custom_field_id[]=10` and `custom_field_value_10=Full-time` values, just as they appeared in the original HTML.

Problem

I have a url that's displayed from a variable in a search form, but due to the url encoding, its putting the "%3d" instead of the "=" sign, which obviously doesn't work. I know you can't "turn off" url encoding can you? Don't you have to set it up to allow special characters? Here is the code: Again, I need the = signs below to show in the resulting url, not %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> ```

Original source