Из рабочего проекта C++0x новые типы char (char16_t и char32_t) для обработки Unicode будут беззнаковыми (uint_least16_t и >uint_least32_t будут базовыми типами).
Но насколько я вижу (возможно, не очень далеко), тип char8_t (на основе uint_least8_t) не определен. Почему ?
И это еще больше сбивает с толку, когда вы видите, что новый префикс кодировки u8 введен для строкового литерала UTF-8... на основе старого знакомого (sign/unsigned) char. Почему ?
Обновление: есть предложение добавить новый тип: char8_t
char8_t: тип символов и строк UTF-8 (версия 1) http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0482r1.html