Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 读取文本并在单独的行中打印每个(字节)字符_C_File_Utf 8 - Fatal编程技术网

C 读取文本并在单独的行中打印每个(字节)字符

C 读取文本并在单独的行中打印每个(字节)字符,c,file,utf-8,C,File,Utf 8,执行此代码以读取文件并在单独的行中打印每个字符\(字节) 可以很好地使用ASCII void preprocess_file (FILE *fp) { int cc; for (;;) { cc = getc (fp); if (cc == EOF) break; printf ("%c\n", cc); } } int main(int argc, char *argv []) { preprocess

执行此代码以读取文件并在单独的行中打印每个字符\(字节)

可以很好地使用ASCII

void
preprocess_file (FILE *fp)

{
  int cc;

    for (;;)
      { 
    cc = getc (fp);
    if (cc == EOF)
        break;
    printf ("%c\n", cc);
      }
}

int
main(int argc, char *argv [])
{
    preprocess_file (stdin);

    exit (0);
}
但当我将其与UTF-8编码文本一起使用时,它会显示无法读取的字符 比如

ï
»
؟
ط
§
ظ
„
ظ
…
ط
¤
ط
´
ط
还有建议


感谢要了解Unicode,您需要使用
fgetwc
而不是
getc


此外,要使用UTF-8,您可能需要配置您的环境,将UTF-8作为默认字符编码。但是,这是现代Linux系统上的默认设置。

我对C库不太了解,无法告诉您如何解决这个问题,但是您应该停止假设1字节==1个字符。在许多编码中(包括UTF-8),这根本不是真的,至少不是所有字符都是这样。可能的重复: