c11使用utf-8 utf-16和utf-32的内置类型改进编码支持。
但是我完全无法在标准功能中找到使用它们的参考。我发现的是如何在c ++ 11中使用它们而不是在C中。
那么如何打印一个char32_t?
答案 0 :(得分:2)
没有什么可说的:C11只引入了四个新的标准库函数来处理char16_t
和char32_t
,它们将它们转换为多字节字符串/从多字节字符串转换:
char16_t
:mbrtoc16()
和c16rtomb()
char32_t
:mbrtoc32()
和c32rtomb()
对于printf()
,它们的行为类似于uint_least16_t
和uint_least32_t
类型,因此您可以使用相同的格式说明符:
#include <inttypes.h>
char32_t x = ...;
printf("%" PRIuLEAST32 "\n", x);
如果要将值打印为字符,则需要使用上述转换函数。
使用char16_t
和char32_t
字符和字符串文字是完全相同的
在C11和C ++ 11中。