0

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

适用于 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 编码文本一起使用时,它会显示不可编辑的字符,例如

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

和建议?

谢谢

4

1 回答 1

0

要识别 Unicode,您需要使用fgetwc而不是getc.

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

于 2013-11-09T09:51:51.280 回答