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

时间:2013-11-09 09:21:55

标签: 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_file (stdin);

    exit (0);
}

但是当我使用UTF-8编码的文本时,它显示出不可靠的角色 比如

ï
»
؟
ط
§
ظ
„
ظ
…
ط
¤
ط
´
ط

和建议?

由于

1 个答案:

答案 0 :(得分:0)

要识别Unicode,您需要使用fgetwc代替getc

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