【发布时间】:2015-02-22 02:31:02
【问题描述】:
输入 -> ??????????
输出-> ≡ƒÿé≡ƒÿé
我只是想保持表情符号的原始状态。
我正在做的就是这个
#include <stdio.h>
#include <stdlib.h>
int main()
{
char ch;
FILE *fp;
fp = fopen("test.txt","r");
while( ( ch = fgetc(fp) ) != EOF )
printf("%c",ch);
fclose(fp);
return 0;
}
【问题讨论】:
-
答案取决于该文件的编写方式 - 如果我查看您的问题的页面源,您用于输入的字符将显示为
&#128514;。你希望处理什么样的编码——你用“unicode”标记,但是哪个? UTF-8? -16? -32? UCS-2? (我希望不会)。 -
是的,您帖子中的“输入”没有正确显示这一事实应该被视为您对 Unicode 世界的介绍,您不能再假设一个字节是一个字符,并且,根据平台的不同,您可能需要处理 UTF-8,或者使用旧式 8 位 POSIX 函数以外的东西来处理 UTF-16。并且您需要了解文件中的字节顺序和字节顺序标记。
-
文件是用 utf-8 编码的,而不是代码页 437,你必须先解决这个问题。例如,使用非标准的 "rt,ccs=UTF-8" 作为 fopen 的第二个参数。然后你必须编写一个 GUI 应用程序才能正确显示它,旧的 C 运行时电传用户界面只能侧面显示微笑:-p 要获得颜色 google "emoji directwrite 8.1"
-
代码示例强烈表明这是 C 代码,而不是 C++。您希望得到哪种语言的答案?
标签: c text unicode file-handling emoji