【发布时间】:2017-01-14 19:22:46
【问题描述】:
我正在用 C 语言为一个项目制作一个程序,在该项目中,它将打印到控制台的所有内容都打印到文件中。问题是我必须打印一些特殊字符,如“Ç”,所以我使用 ascii 代码,它可以很好地打印到控制台,但是它打印到文件的内容不正确。这是一个例子:
printf(" %c", 128);
output to console: Ç
fprintf(output, " %c", 128);
output to file: €
我在 cmd 中运行了命令 chcp,它告诉我我正在使用代码页 850,并且我使用了那些 asci 代码,所以我不知道是什么问题。程序写入记事本txt文件。
【问题讨论】:
-
检查编辑器使用的代码页
-
注意
128不是ASCII码; ASCII 只定义代码 0..127. -
您如何分析“输出到文件”?你用什么命令来显示文件的内容? CP850 在代码点 128 处有Ç; CP1252 在代码点 128 处有 €。这是对相同 8 位的两种不同解释。
-
也许您需要告诉记事本使用 CP850 代码集而不是 CP1252 — 反之亦然。
-
请注意这是未定义的行为。
%c是char的格式说明符,但128是int。
标签: c windows printf ascii special-characters