Encoder iterator, converting unicode chars into bytes based on the contained decoding callable.
Must be fallible because not all unicode codepoints are valid bytes.
Encode function for encoding to emoji.
0x00..=0x4F is mapped to the range starting at U+1F370 For some plants and foods.
0x50..=0x8F is mapped to the range starting at U+1F400 for animals.
0x90..=0xDF is mapped to the range starting at U+1F600 for expressions and hand signs.
0xE0..=0xFF is mapped to the range starting at U+1F910 for more expressions and hand signs.
Encode function for encoding to printable-ascii-preserving Unicode.
0x00..=0x1F is mapped to the range starting at U+B0 to map into the Latin-1 Supplement block in the first range that is 8-byte aligned and fully printable, skipping NBSP and SHY.
0x20..=0x7E are mapped to the same bytes as printable ASCII.
0x7F is arbitrarily mapped from ASCII ESC to §.
0x80..=0xFF mapped to the range starting at U+100, Latin Extended-A, with the exception of
0xC9, which is mapped arbitrarily to ¤ to avoid the deprecated character at that codepoint.