---
name: "MIME::Base64::URLSafe"
section: "3pm"
platform: "linux"
package: "libmime-base64-urlsafe-perl"
version: "0.01-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/MIME::Base64::URLSafe"
---

# MIME::Base64::URLSafe(3pm)

Perl version of Python's URL-safe base64 codec

## NAME

MIME::Base64::URLSafe - Perl version of Python's URL-safe base64 codec

## SYNOPSIS

```
  use MIME::Base64::URLSafe;

  $encoded = urlsafe_b64encode('Alladdin: open sesame');
  $decoded = urlsafe_b64decode($encoded);
```

## DESCRIPTION

This module is a perl version of python's URL-safe base64 encoder / decoder.

When embedding binary data in URL, it is preferable to use base64 encoding.  However, two characters ('+' and '/') used in the standard base64 encoding have special meanings in URLs, often leading to re-encoding with URL-encoding, or worse, interoperability problems.

To overcome the problem, the module provides a variation of base64 codec compatible with python's urlsafe\_b64encode / urlsafe\_b64decode.

Modification rules from base64:

```
    use '-' and '_' instead of '+' and '/'
    no line feeds
    no trailing equals (=)
```

The following functions are provided:

```
    urlsafe_b64encode($str)
    urlsafe_b64decode($str)
```

If you prefer not to import these routines to your namespace, you can call them as:

```
    use MIME::Base64::URLSafe ();
    $encoded = MIME::Base64::URLSafe::encode($decoded);
    $decoded = MIME::Base64::URLSafe::decode($encoded);
```

## SEE ALSO

MIME::Base64

Fore more discussion on using base64 encoding in URL applications, see: http://en.wikipedia.org/wiki/Base64#URL\_Applications

## AUTHOR

Kazuho Oku \<kazuho \_\_\_at\_\_\_ labs.cybozu.co.jp\>

Copyright (C) 2006 Cybozu Labs, Inc.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.7 or, at your option, any later version of Perl 5 you may have available.
