【发布时间】:2017-03-14 22:15:07
【问题描述】:
我目前正在编写一个小型 C 程序,使用 MinGW 的 gcc 在 Windows 上编译它。我还将它托管在 GitHub 上(并使用 GitHub Desktop for Windows)。然而,GitHub 似乎在文件中强制执行 UTF-8 编码,而 Windows 终端无法处理 UTF-8。
经过一番搜索,我找到了一些解决方案,但它们需要手动的、最终用户风格的解决方案,我想避免这种情况(我不打算分发它或其他任何东西,但我想知道如果我是)。
目前的工作是将编码更改为 ANSI 并在编译之前手动修复所有内容,但我宁愿避免每次我想在 Windows 上工作时都必须这样做。
那么问题来了:在 Windows 上编译时如何处理 UTF-8 编码的源代码?
这是一些示例输出:
[]
- 左:以 UTF-8 编码的源代码(显示错误)。
- 右图:以 ANSI 编码的源代码(右图)。
编译过程完全一样,只是实际的源代码编码不同。
【问题讨论】:
-
我希望我没有遗漏任何相关信息,但如果我遗漏了请询问!
-
gcc 不会自动处理吗?
-
GCC 处理得很好,但问题似乎是由 Windows 终端引起的。显然它只适用于 Lucida Console 字体,但我不想为了让我的程序运行而更改终端字体。
-
@HansPassant 我没有打开任何文件!我的源代码以 UTF-8 编码,编译后的文件在 Windows 上编码不正确。将我的源代码转码为 ANSI 时,一切正常! -- 然而,知道 fopen() 处理编码非常有趣。谢谢!
-
所以 gcc 在 UTF-8 中编译正常,但 exe 没有运行?究竟出了什么问题?