【发布时间】:2020-06-01 13:09:00
【问题描述】:
我希望我的代码输出 unicode 字符。
这是我的代码:
printf("\u2660"); //Spade character
使用 Cygwin 编译和执行时,它工作正常,并显示黑桃字符(♠)。
但是,它不适用于 MinGW,因为 UTF-8 编码显示为三个字符 (ÔÖá)。
在可执行文件中,字符在两种情况下都存储为 UTF-8,因此问题不是来自编译。
那么,为什么 Cygwin 和 MinGW 的控制台行为不同?
是否也可以通过 MinGW 显示 UTF-8?
【问题讨论】:
-
也许 MinGW 和 Cygwin 使用不同的终端仿真器/控制台窗口应用程序?
-
@isrnick 谢谢。为什么 Windows 不尝试显示 UTF-8?如果我可以发布可执行文件而不必分发 cygwin.dll 会方便得多。
-
如果在两个系统下运行程序并将输出重定向到文件
a.out > t.bin,字节转储t.bin的内容。如果相同,那么您有一个控制台差异 - 否则它是一个a.out差异。