# ftfy v0.1.0 - Table of Contents

> An Elixir port of the Python ftfy library: fixes broken Unicode text, most importantly mojibake (text decoded in the wrong encoding).

## Pages

- [Ftfy — fixes text for you](readme.md)

## Modules

- [Ftfy](Ftfy.md): ftfy: fixes text for you.
- [Ftfy.Badness](Ftfy.Badness.md): A heuristic that detects likely mojibake. It signals which segments of text
need to be fixed, and when fixing can stop.
- [Ftfy.CLI](Ftfy.CLI.md): A command-line utility for fixing text found in a file. Port of `ftfy.cli`.
- [Ftfy.Chardata](Ftfy.Chardata.md): Details about characters and the encodings that use them: the regexes that
detect mojibake-ish byte and character sequences, the "could this string have
come from this single-byte encoding?" check, and the translation tables for
ligatures, character width, and control-character removal.
- [Ftfy.Codecs](Ftfy.Codecs.md): Encoding and decoding between Elixir strings (UTF-8 binaries) and raw byte
sequences, for the encodings ftfy needs.
- [Ftfy.Codecs.Utf8Variants](Ftfy.Codecs.Utf8Variants.md): A decoder for the "utf-8-variants" family of not-quite-UTF-8 encodings,
including CESU-8 (UTF-8 layered over UTF-16 surrogate pairs) and Java's
"modified UTF-8", which encodes the null character as the two bytes
`0xc0 0x80`.
- [Ftfy.Fixes](Ftfy.Fixes.md): The individual fixes that `Ftfy.fix_text/2` can perform, and the functions
named in "explanations" such as the output of `Ftfy.fix_and_explain/2`.
- [Ftfy.Formatting](Ftfy.Formatting.md): Functions for justifying Unicode text in a monospaced display such as a
terminal, based on the display width of characters.
- [Ftfy.TextFixerConfig](Ftfy.TextFixerConfig.md): Configuration options for ftfy. Mirrors `ftfy.TextFixerConfig`.

