【发布时间】:2014-08-21 10:01:00
【问题描述】:
我开始了解编程语言 C,但在编码方面遇到了一些问题。当我通过 printf 写入命令提示符时,非 ASCII 字符显示不正确。源代码文件编码为UTF-8。
源代码:
#include <stdio.h>
int main(void)
{
printf("\n\u2212\n");
return 0;
}
cl.exe:
警告 C4566:universal-character-name '\u2212' 表示的字符无法在当前代码页 (1252) 中表示
如何让命令提示符正确显示 Unicode?p>
【问题讨论】:
-
我从来不用指定编码。
-
举一些例子,你如何尝试输出这些字符,你期望什么以及你得到什么。并且可能给出源文件编码(如果不是 7 位 ASCII)和终端的编码。
-
是的,this codepage 无法对 Unicode 代码点 0x2212 进行编码。另请注意,
stdout是文本流而不是二进制流,因此您应该使用printf("\n\u2212\n");。 -
实际上,你没有 C 题(据我所知);这是一个关于如何在 Windows 中更改语言环境/编码的问题。也许重新标记您的问题(以吸引更有可能帮助您的受众)或询问您的操作系统供应商。
-
实际上,我的意思是添加一个标签以接触 Windows 观众,而不是删除 C 标签:)
标签: c unicode encoding command-line command-prompt