# btoa/atob(string)

These functions convert between binary strings and base64-encoded ASCII strings, useful for data encoding and decoding operations.

## btoa() - Binary to ASCII

Encodes a string of data to base64.

```javascript
encoded = btoa("Hello, world!")
log encoded  // "SGVsbG8sIHdvcmxkIQ=="
```

### Syntax

```javascript
btoa(content)
```

### Parameters

* `content`: String - The string data to be encoded to base64

### Return Value

Returns a base64-encoded ASCII string.

## atob() - ASCII to Binary

Decodes a base64-encoded string back to its original form.

```javascript
decoded = atob("SGVsbG8sIHdvcmxkIQ==")
log decoded  // "Hello, world!"
```

### Syntax

```javascript
atob(content)
```

### Parameters

* `content`: String - The base64-encoded string to be decoded

### Return Value

Returns the decoded string.

## Use Cases

These functions are particularly useful for:

* Encoding binary data to be transmitted as text
* Working with data URLs
* Storing binary data in text-based formats
* Handling image data in data URI format
* Basic data obfuscation (not for security purposes)

## Examples

### Data URI Creation

```javascript
// Create a simple data URI for an image
dataURI = "data:image/png;base64," + btoa(imageBinaryData)

// Then use it in an image element
image dataURI 100 100
```

### Simple Text Encoding/Decoding

```javascript
// Encode a user message
message = "This is a secret message"
encoded = btoa(message)
log encoded  // Base64 encoded version

// Later decode it
original = atob(encoded)
log original  // "This is a secret message"
```

### Working with APIs that Return Base64

```javascript
// Some API returns base64 data
apiResponse = fetchData("https://api.example.com/image")

// Decode it
decodedData = atob(apiResponse)

// Process the decoded data
// ...
```

## Notes

* These functions work with strings, not arbitrary binary data
* For full Unicode support, you may need additional handling
* Not suitable for encrypting sensitive data
* Very large strings may cause performance issues
* If the input to `atob()` is not a valid base64 string, it will throw an error


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://osl.mistium.com/functions/encoding/btoa-atob.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
