1

我在这一点上被困在用UTF-8格式的字符串写入文件。我现在有 4E25 的值(例如)。但我需要写入带有前缀 \u 的文本文件。由于我不能直接将 a 附加\u4E25,我该怎么做才能在C中输出“\u4e25” ?

4

2 回答 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 回答