如何在C中读取/写入UTF8文本文件?

我正在尝试从文本文件中读取UTF8文本,然后将其中一些打印到另一个文件中。我正在使用Linux和gcc编译器。这是我正在使用的代码:

#include <stdio.h>

#include <stdlib.h>

int main(){

FILE *fin;

FILE *fout;

int character;

fin=fopen("in.txt", "r");

fout=fopen("out.txt","w");

while((character=fgetc(fin))!=EOF){

putchar(character); // It displays the right character (UTF8) in the terminal

fprintf(fout,"%c ",character); // It displays weird characters in the file

}

fclose(fin);

fclose(fout);

printf("\nFile has been created...\n");

return 0;

}

目前,它适用于英文字符。

回答:

这段代码对我有用:

/* fgetwc example */

#include <stdio.h>

#include <wchar.h>

#include <stdlib.h>

#include <locale.h>

int main ()

{

setlocale(LC_ALL, "en_US.UTF-8");

FILE * fin;

FILE * fout;

wint_t wc;

fin=fopen ("in.txt","r");

fout=fopen("out.txt","w");

while((wc=fgetwc(fin))!=WEOF){

// work with: "wc"

}

fclose(fin);

fclose(fout);

printf("File has been created...\n");

return 0;

}

以上是 如何在C中读取/写入UTF8文本文件? 的全部内容, 来源链接: utcz.com/qa/424791.html

回到顶部