C:用十六进制表示UTF-8(像欧元)

C: Using hexadecimal to represent UTF-8 (like Euro)

我是 C 世界的新手,请多多包涵。我到处搜索这个问题的答案,但还没有弄清楚。

我正在尝试输入和输出,例如,欧元符号 (扩展字符值)。我想使用十六进制字节组合。对于欧元,它们是: 0xE2, 0x82, 0xAC 。我知道在C++中,你可以简单地使用\u20ac,在C中不是这样。

我试过将十六进制值分配给一个整数,但这对我不起作用。我也尝试过使用欧元符号的十进制值。

我的程序背后的想法是获取用户输入(例如 100 欧元)并将其转换为不同的货币。所以区分货币符号是我手头的主要问题。除了我尝试过的方法,还有其他方法可以解决这个问题吗?

基本上可以用3个char表示。

所以你可以这样做。

char str[] = { 0xE2, 0x82, 0xAC, 0x00 };
printf("str: \"%s\"\n", str);

输出:

str: "€"