• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

gcc编译C代码后,输出乱码

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

很大可能是gcc不支持utf-8,把C代码文件改成GBK即可。

即IDEA开发Java是如何设置全部的UTF-8,把这些UTF-8改为GBK.即可。

上面这个是最简单的,并且我成功了,下面有一个文章你们可以试试,我没有试成功。

 

https://www.jianshu.com/p/cd3a7b196ab3

正确解决 VS Code / GCC / Clang 编译时中文乱码问题

夏洛克聂
0.102
2020.05.04 21:38:42
字数 829
阅读 11,850
症状描述:
在 Windows 环境下 C/C++ 源代码包含中文字符串时:比如 cout << "你好" <<endl; 这时 gcc、clang 都能正常编译,但是运行时显示乱码。网上乱搜一通,排名靠前的解决方法基本差不多。

网上最容易搜到的方法:
—— “这是因为新建文本默认编码为 UTF-8,把文本编码方式更改为 ANSI 即可”

—— “改完文本编码后,VS Code 状态栏右下角 UTF-8 改为 GB2312”

—— “改了以后 clang 编译会有警告怎么办,编译时在 clang 后面加上参数 -Wno-invalid-source-encoding 可以屏蔽警告”

对于这些方法,我总觉得不对劲:

1、为什么我在 Linux 下编译就没有这些问题?

2、在我的印象中 UTF-8 更新,更强,兼容全球语言字符,ANSI 则比较老旧,为什么非要回到解放前?

3、搜索 "clang 中文乱码" 时发现这篇文章 :颤抖吧:clang中文编程,真正不可维护的代码!!,让我看到了 clang 的中文支持有多么强大。既然如此为什么还要去做屏蔽警告这种掩耳盗铃的事情呢?

所以问题不应该归于编译器上,于是我试着搜索 “PowerShell 中文乱码”,这才知道真正的问题出在 Windows 的控制台(CMD / PowerShell)上,并找到了正确的解决办法。又因为这些文章的标题和 GCC / Clang / VS Code 之类的问题不对口,所以我写这篇文章搭个桥,防止有同样困扰的人找错路。

正确方法:
针对 PowerShell:

1.在 Win 图标处右键,打开 Windows PowerShell (管理员),执行命令:

Set-ExecutionPolicy Unrestricted

2.新建文档 profile.ps1(这一步必须要文件管理器显示文件扩展名,步骤自行百度)

3.用记事本编辑,粘贴以下代码并保存:

$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding

4.把 profile.ps1 保存到以下路径:

C:\Windows\System32\WindowsPowerShell\v1.0

5.完成。

 

检测是否有效:

打开 PowerShell,执行:chcp

结果如下:Active code page: 65001,说明设置成功了

其它可能有用的方法:
—— 投入 Linux 的怀抱( 个人喜欢 Deepin )

—— Win10 CMD中文乱码解决 (微软的实验性功能,能解决 CMD 和 PowerShell 问题,但可能会使一些老软件出问题)

—— Win10 CMD 窗口中文乱码永久解决方法 (修改注册表,对 CMD 有效,对 PowerShell 无效。对于 CMD 并不建议改,改了会使一些批处理乱码)

—— Win10 下 CMD、PowerShell 设置默认编码为 UTF-8 (知乎的讨论比较全面,基本覆盖到了网上搜到的各种方法和问题,可惜我发现得比较晚,贴出来供大家参考

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap