scan_urlencoded(3)

scan_urlencoded3

Decode urlencoded data

Usage

#include <libowfat/textcode.h>

size_t scan_urlencoded(const char *src,char *dest,size_t* destlen);

Overview

scan_urlencoded decodes urlencoded data from src into dest. Decoding stops when it encounters any invalid input characters (including ' ', '?' and '&').

It will then write the number of decoded bytes in dest into *destlen, and return the number of bytes decoded from src.

Note that the plus character is handled differently depending on whether we are encoding the query part or the path (application/x-www-form-urlencoded). In "http://example.com/a+b?c+d", only the second plus can be decoded as a space character. If you want + decoded to space, use scan_urlencoded2.

dest can be NULL. destlen can be NULL. dest can be src.

Return value

scan_urlencoded returns the number of bytes successfully scanned and processed from src.

Examples

scan_urlencoded("foo%3ebar",buf,&i) -> return 9, i=7, buf="foo.bar"

scan_urlencoded("foo+bar",buf,&i) -> return 7, i=7, buf="foo+bar"

scan_urlencoded2("foo+bar",buf,&i) -> return 7, i=7, buf="foo bar"

Releases

Unchanged in 2 releases since Debian 12 (Bookworm).

  1. 12–13

From libowfat-dev 0.32-5 in Debian 13 (Trixie). Parsed by carta from the page's man source.