KHTTP_URLDECODE(3) Library Functions Manual KHTTP_URLDECODE(3)

khttp_urldecode, khttp_urldecode_inplaceURL decoding for kcgi

library “libkcgi”

#include <sys/types.h>
#include <stdarg.h>
#include <stdint.h>
#include <kcgi.h>

enum kcgi_err
khttp_urldecode(const char *src, char **dst);

enum kcgi_err
khttp_urldecode_inplace(char *src);

Decode the percent-encoded string src. In (), the result is placed in dst. In (), the input string src is overwritten with the result, which will be the same or shorter in length.

These accept uppercase and lowercase percent encoding, for example. "%A0" or "%a0", respectively.

The deprecated form of these functions, () and (), should no longer be used.

khttp_urldecode() and khttp_urldecode_inplace() return an error code:

Success (not an error).
Memory failure (only khttp_urldecode()).
Malformed input or NULL src or dst arguments.

If khttp_urldecode() returns an error, it always sets dst to NULL. khttp_urldecode_inplace(), however, may leave a partially-decoded string in src.

Written by Kristaps Dzonsons <>.

September 23, 2021 OpenBSD 6.7