我在这一点上被困在用UTF-8格式的字符串写入文件。我现在有 4E25 的值(例如)。但我需要写入带有前缀 \u 的文本文件。由于我不能直接将 a 附加\u
到4E25
,我该怎么做才能在C中输出“\u4e25” ?
问问题
1018 次
2 回答
0
\u
被解释为值的一部分。ie\u00aa
在您的代码中不会被解释为后跟字符的转义字符0024
。编译器只会将所有该序列转换为正确的字节(在本例0xc2a3
中为 UTF-8)。
例如,没有什么可以阻止您使用printf("\u00aa");
,但您不能这样做printf("\u%s", str);
。如果您需要直接获取 UTF-8 代码,您可以使用八进制,例如
printf("\302\243 \n"); // print UTF-8 sequence directly
于 2013-03-14T15:46:50.270 回答
0
您是说您只是想将文本字符串打印"\u4e25"
到文件,但您不能因为编译器正在解释转义序列并打印实际的 unicode 字符?'\'
如果是这样,答案很简单:字符的转义码是\\
. 所以你会fprintf
"\\u4e25"
在你的源代码中生成"\u4e25"
文件。
于 2013-03-14T15:27:08.453 回答