ann*_*nno 10 c++ unicode utf-8 char c++11
从C++ 0x工作草案中,用于处理Unicode 的新char类型(char16_t和char32_t)将是无符号的(uint_least16_t和uint_least32_t将是基础类型).
但据我所知(也许不是很远),没有定义类型char8_t(基于uint_least8_t).为什么?
当你看到为UTF-8字符串文字引入一个新的u8编码前缀时,它会更加令人困惑......基于老朋友(sign/unsigned)char.为什么?
更新:有一个添加新类型的建议:char8_t
char8_t:UTF-8字符和字符串的类型(修订版1) http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0482r1.html
char16_t并char32_t应该可用于表示代码点。由于没有负代码点,因此对它们进行无符号处理是明智的。
UTF-8 不直接表示代码点,因此u8的基础类型是否有符号并不重要。