Crate encode_unicode

source ·
Expand description

Miscellaneous UTF-8 and UTF-16 types and methods.

Optional features:

  • #![no_std]-mode: There are a few differences:

    • Error doesn’t exist, but description() is made available as an inherent impl.
    • Extend/FromIterator-implementations for String/Vec<u8>/Vec<u16> are missing.
    • There is no io, so Utf8Iterator and Utf8CharSplitter doesn’t implement Read.

    This feature is enabled by setting default-features=false in Cargo.toml: encode_unicode = {version="0.3.4", default-features=false}

  • Integration with the ascii crate:
    Convert Utf8Char and Utf16Char to and from ascii::AsciiChar.

The minimum supported version of Rust is 1.15, older versions might work now but can break with a minor update. page
github repository


Errors returned by various conversion methods in this crate.
Iterator types that you should rarely need to name


An unicode codepoint stored as UTF-8.
Read or iterate over the bytes of the UTF-8 representation of a codepoint.
An unicode codepoint stored as UTF-16.
Iterate over the units of the UTF-16 representation of a codepoint.


Extension trait for char that adds methods for converting to and from UTF-8 or UTF-16.
Iterator methods that convert between u8s and Utf8Char or u16s and Utf16Char
Methods for iterating over u8 and u16 slices as UTF-8 or UTF-16 characters.
Adds .utf8chars() and .utf16chars() iterator constructors to &str.
Methods for working with u8s as UTF-8 bytes.
Methods for working with u16s as UTF-16 units.


Converts an iterator of Utf8Char (or &Utf8Char) to an iterator of u8s.
Is equivalent to calling .flat_map() on the original iterator, but the returned iterator is ~40% faster.
Converts an iterator of Utf16Char (or &Utf16Char) to an iterator of u16s.
Is equivalent to calling .flat_map() on the original iterator, but the returned iterator is about twice as fast.