---
name: "ascii85"
section: "3tcl"
platform: "linux"
package: "tcllib"
version: "2.0+dfsg-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/ascii85/3tcl"
---

# ascii85(3tcl)

ascii85-encode/decode binary data

```

```

## NAME

ascii85 - ascii85-encode/decode binary data

## SYNOPSIS

package require **Tcl 8.5 9**

package require **ascii85 ?1.1?**

**::ascii85::encode** ?**-maxlen** *maxlen*? ?**-wrapchar** *wrapchar*? *string*

**::ascii85::decode** *string*

```

```

## DESCRIPTION

This package provides procedures to encode binary data into ascii85 and back.

- **::ascii85::encode** ?**-maxlen** *maxlen*? ?**-wrapchar** *wrapchar*? *string*

  Ascii85 encodes the given binary *string* and returns the encoded result. Inserts the character *wrapchar* every *maxlen* characters of output. *wrapchar* defaults to newline. *maxlen* defaults to **76**.

  *Note well*: If your string is not simple ascii you should fix the string encoding before doing ascii85 encoding. See the examples.

  The command will throw an error for negative values of *maxlen*, or if *maxlen* is not an integer number.

- **::ascii85::decode** *string*

  Ascii85 decodes the given *string* and returns the binary data. The decoder ignores whitespace in the string, as well as tabs and newlines.

## EXAMPLES

```
% ascii85::encode "Hello, world"
87cURD_*#TDfTZ)
```

```
% ascii85::encode [string repeat xyz 24]
G^4U[H$X^\H?a^]G^4U[H$X^\H?a^]G^4U[H$X^\H?a^]G^4U[H$X^\H?a^]G^4U[H$X^\H?a^]G
^4U[H$X^\H?a^]
% ascii85::encode -wrapchar "" [string repeat xyz 24]
G^4U[H$X^\H?a^]G^4U[H$X^\H?a^]G^4U[H$X^\H?a^]G^4U[H$X^\H?a^]G^4U[H$X^\H?a^]G^4U[H$X^\H?a^]
```

```
# NOTE: ascii85 encodes BINARY strings.
% set chemical [encoding convertto utf-8 "C\u2088H\u2081\u2080N\u2084O\u2082"]
% set encoded [ascii85::encode $chemical]
6fN]R8E,5Pidu\UiduhZidua
% set caffeine [encoding convertfrom utf-8 [ascii85::decode $encoded]]
```

## REFERENCES

- \[1\]

  *http://en.wikipedia.org/wiki/Ascii85*

- \[2\]

  Postscript Language Reference Manual, 3rd Edition, page 131. *http://www.adobe.com/devnet/postscript/pdfs/PLRM.pdf*

## BUGS, IDEAS, FEEDBACK

This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category *base64* of the *Tcllib Trackers* \[http://core.tcl.tk/tcllib/reportlist\]. Please also report any ideas for enhancements you may have for either package and/or documentation.

When proposing code changes, please provide *unified diffs*, i.e the output of **diff -u**.

Note further that *attachments* are strongly preferred over inlined patches. Attachments can be made by going to the **Edit** form of the ticket immediately after its creation, and then using the left-most button in the secondary navigation bar.

## KEYWORDS

ascii85, encoding

## CATEGORY

Text processing

## COPYRIGHT

```
Copyright (c) 2010, Emiliano Gavilán
```
