字符编码(心得)

问题的由来与结束时一个故事:

Windows下使用g++命令,编译的cpp文件生成的可执行文件,输出的中文字符是乱码。

然后使用ls命令 展示的中文目录列表是 十六进制的字符。无法正常显示。

本来我以为问题处在安装的Git,然后用命令行对Git字符参考网上资料设置了一下,无效果。

然后是Git目录下etc 目录下的 gi-..config文件设置。不过我目录没找到这些文件。难道我用了假的Git?

之后,想到可能到是 Qt的问题,也对Qt改来改去。好吧其实根本问题在于:

ls命令是linux命令,所以中文字符会出问题。但是 dir等Windows命令没什么问题啊,哈!

所以,也没什么大碍。以后再看看为什么linux命令在Cmd控制台中文会显示成Hex字符格式

 

最出现的问题是,使用IDE(C-Free)编写的Cpp文件,即使使用g++命令重新编译,中文依然正常显示。

但是使用notepad++编辑器写的Cpp文件,输出的中文字符依然是乱码(非hex字符格式).

网上搜索的资料结果还不错。提供了两点的解决方案:

1. 增加命令 -fexec-charset=GBK

g++ -fexec-charset=GBK main.cpp -o main && main

2. 是在记事本里,另存为 Ascii字符编码格式。

问题是,总不能在记事本里面写代码吧,我又不是什么大神。所以,我用notepad++的[编码]-[以ASCII格式编码]选项,如果选择[转为ASCII格式编码],可能没什么效果。之后再用g++命令编译,完美!输出中文字符。

但是为什么要Ascii呢?而不是utf8呢? 之前好像见到过中文的ASCII其实是GBK 。。。

Qt目录下有G++命令,不过我把DevCpp目录下mingw64\bin目录下命令用Cmd链接到桌面上,所以用的devCpp携带的G++命令。

 

更多相关知识:

Cmd_启动参数Vim的保存和退出G++编译器的使用G++编译后输出中文显示乱码解决方案

gcc/g++乱码解决(我也不知道有啥用) .

July 5 , 2017 (Pm 23:48)

 

转载于:https://my.oschina.net/IndustrialRevolutio/blog/1173328

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值