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