In contrast to RFC3548, the 62nd character (‘+’) is replaced with ‘-’, the 63rd character (‘/’) is replaced with ‘_’. Furthermore, the encoder does not fill the string with trailing ‘=’. The resulting encoded strings comply to the regular expression pattern “[A-Za-z0-9_-]” and thus are safe to use in URLs or for file names.
base64_urlencode(x)
base64_urldecode(x)[character] of the same length as input x.
Implementation based on base64 encoder/decoder in the Apache Portable Runtime (APR): https://svn.apache.org/repos/asf/apr/apr/trunk/encoding/apr_base64.c