如何在C中存储unicode



我试图在C中的变量中存储Unicode代码点。我尝试使用wchar_t,但由于我试图存储的Unicode代码点是U+1F319,因此它不适合wchar_t。我该怎么绕过这个?我使用的是Windows电脑。

#include <locale.h>
#include <wchar.h>
#include <stdio.h>
#include <stdlib.h>
int main(void){
setlocale(LC_ALL,"en_US.UTF-8");
unsigned long long x = 0x1F319;
wchar_t wc =L'U0001f319';
wprintf(L"%lc",wc);
return EXIT_SUCCESS;
}

以下代码给出此错误:

Unicode.c:12:14:警告:字符常量对于其类型太长
wchar_t wc=L'\U0001f319';

如何在C中存储unicode?

由于C11;以存储Unicode码点";,使用char32_t@肖恩

#include <uchar.h>
char32_t ch1 = 0x1F319;
char32_t ch2 = U'U0001f319';

适用于我的Windows计算机。参考


char32_t

它是用于32位字符的无符号整数类型,与CCD_ 5。。。C11§7.27 2

最新更新