如何使用新的char16_t和u8类型?

时间:2015-05-28 15:22:34

标签: c unicode posix c11 char16-t

c11使用utf-8 utf-16和utf-32的内置类型改进编码支持。

但是我完全无法在标准功能中找到使用它们的参考。我发现的是如何在c ++ 11中使用它们而不是在C中。

那么如何打印一个char32_t?

1 个答案:

答案 0 :(得分:2)

没有什么可说的:C11只引入了四个新的标准库函数来处理char16_tchar32_t,它们将它们转换为多字节字符串/从多字节字符串转换:

对于printf(),它们的行为类似于uint_least16_tuint_least32_t类型,因此您可以使用相同的格式说明符:

#include <inttypes.h>

char32_t x = ...;
printf("%" PRIuLEAST32 "\n", x);

如果要将值打印为字符,则需要使用上述转换函数。

使用char16_tchar32_t字符和字符串文字是完全相同的 在C11和C ++ 11中。