Skip to content
Advertisement

Why is base64_encode() adding a slash “/” in the result?

I am encoding the URL suffix of my application:

JavaScript

Notice the slash before ‘X2’.

Why is this happening? I thought base64 only outputted A-Z, 0-9 and ‘=’ as padding?

Advertisement

Answer

No. The Base64 alphabet includes A-Z, a-z, 0-9 and + and /.

You can replace them if you don’t care about portability towards other applications.

See: http://en.wikipedia.org/wiki/Base64#Variants_summary_table

You can use something like these to use your own symbols instead (replace - and _ by anything you want, as long as it is not in the base64 base alphabet, of course!).

The following example converts the normal base64 to base64url as specified in RFC 4648:

JavaScript
User contributions licensed under: CC BY-SA
1 People found this is helpful
Advertisement