UTF-8格式输出,带Unicode \ uxxxx

时间:2013-03-14 15:08:51

标签: c unicode utf-8 arduino output

我在写这个带有UTF-8格式字符串的文件时遇到困难。我现在的值为4E25(例如)。但我需要写一个前缀为\ u的文本文件。由于我无法直接将\u附加到4E25,我可以做些什么来输出C中的“\ u4e25”?

2 个答案:

答案 0 :(得分:0)

您是说您只想将文本字符串"\u4e25"打印到文件,但是您不能,因为编译器正在解释转义序列并打印实际的unicode字符?如果是这样,答案很简单:'\'字符的转义码为\\。因此,您需要在源代码中fprintf "\\u4e25"在文件中生成"\u4e25"

答案 1 :(得分:0)

\u被解释为值的一部分。即代码中的\u00aa不会被解释为转义字符,后跟字符0024。编译器只会将所有序列转换为正确的字节(在本例中为UTF-8中的0xc2a3)。

没有什么可以阻止你使用printf("\u00aa");,但你做不到,printf("\u%s", str);。如果需要直接获取UTF-8代码,可以使用八进制代码,例如

printf("\302\243 \n"); // print UTF-8 sequence directly