---
name: "Convert::Ascii85"
section: "3pm"
platform: "linux"
package: "libconvert-ascii85-perl"
version: "0.01-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Convert::Ascii85"
---

# Convert::Ascii85(3pm)

Encoding and decoding of ascii85/base85 strings

## NAME

Convert::Ascii85 - Encoding and decoding of ascii85/base85 strings

## SYNOPSIS

```
 use Convert::Ascii85;

 my $encoded = Convert::Ascii85::encode($data);
 my $decoded = Convert::Ascii85::decode($encoded);
 use Convert::Ascii85 qw(ascii85_encode ascii85_decode);

 my $encoded = ascii85_encode($data);
 my $decoded = ascii85_decode($encoded);
```

## DESCRIPTION

This module implements the *Ascii85* (also known as *Base85*) algorithm for encoding binary data as text. This is done by interpreting each group of four bytes as a 32-bit integer, which is then converted to a five-digit base-85 representation using the digits from ASCII 33 (`"!"`) to 117 (`"u"`).

This is similar to MIME::Base64 but more space efficient: The overhead is only 1/4 of the original data (as opposed to 1/3 for Base64).

## FUNCTIONS

- Convert::Ascii85::encode DATA

  - Convert::Ascii85::encode DATA, OPTIONS

  Converts the bytes in DATA to Ascii85 and returns the resulting text string. OPTIONS is a hash reference in which the following keys may be set:

  - compress\_zero =\> 0

    By default, four-byte chunks of null bytes (`"\0\0\0\0"`) are converted to `'z'` instead of `'!!!!!'`. This can be avoided by passing a false value for `"compress_zero"` in OPTIONS.

  - compress\_space =\> 1

    By default, four-byte chunks of spaces (`'    '`) are converted to `'+<VdL'`. If you pass a true value for `"compress_space"` in OPTIONS, they will be converted to `'y'` instead.

  This function may be exported as `"ascii85_encode"` into the caller's namespace.

- Convert::Ascii85::decode TEXT

  Converts the Ascii85-encoded TEXT back to bytes and returns the resulting byte string. Spaces and linebreaks in TEXT are ignored.

  This function may be exported as `"ascii85_decode"` into the caller's namespace.

## SEE ALSO

\<http://en.wikipedia.org/wiki/Ascii85\>, MIME::Base64

## AUTHOR

Lukas Mai, `"<l.mai at web.de>"`

## BUGS

Please report any bugs or feature requests to `"bug-convert-ascii85 at rt.cpan.org"`, or through the web interface at \<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Convert-Ascii85\>.  I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

## SUPPORT

You can find documentation for this module with the perldoc command.

```
    perldoc Convert::Ascii85
```

You can also look for information at:

- •

  RT: CPAN's request tracker

  \<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Convert-Ascii85\>

- •

  AnnoCPAN: Annotated CPAN documentation

  \<http://annocpan.org/dist/Convert-Ascii85\>

- •

  CPAN Ratings

  \<http://cpanratings.perl.org/d/Convert-Ascii85\>

- •

  Search CPAN

  \<http://search.cpan.org/dist/Convert-Ascii85/\>

## LICENSE AND COPYRIGHT

Copyright 2011 Lukas Mai.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.
