解决Source Insight编写的代码传到树莓派有中文乱码的问题

问题描述:

我们在树莓派编写的有中文的代码(前提是安装了中文包和中文输入法),不管是注释中的中文还是代码中的中文,在编写完保存退出后,再次进入代码是正常的,printf() 打印的中文也正常,可是从Source Insight传过来的代码打开后发现中文的地方全是乱码,连printf() 打印的中文也是乱码,这是为什么呢?经过网上查了很久我才知道归根结底还是因为编码方式有差异。
首先,我们在终端输入命令:locale
在这里插入图片描述
发现Linux默认的编码方式为utf-8,而Windows下(采用不同的编码方式)编辑的中文在Linux中就显示乱码。那么如何解决这个问题呢?以下是我查了很久得到的方法:解决了树莓派(linux)中打开中文乱码代码中如printf()打印输出的中文乱码问题。

解决方法:

解决从Source Insight传过来的代码有中文乱码的问题:

输入命令 vi ~/.vimrc (我打开的时候该文件是新文件)添加以下内容:

set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8

但是保存退出后我们发现再次用vi 打开某文件时,发现代码都变成清一色的颜色了,也就是说没有语法高亮了,所以为了优化vi编辑器我们还需要再次执行 vi ~/.vimrc,添加以下内容:

syntax on 
set tabstop=4 

第一句是为了语法高亮,第二句是为了tab退四格。更多的优化可自行网上查,这里就不再举例了。

解决从Source Insight传过来代码中如printf()打印输出的中文乱码

做完第一步后我们会发现代码中的所有中文都正常了,但是无奈,当我们编译后继续运行,发现printf()打印输出的还是乱码,这是为什么呢?
我们用 vi 打开某c文件,通过查看编码方式 :set fileencoding (命令行模式下)发现此时的编码方式为cp936
在这里插入图片描述
本以为做了第一步就可以让vi 编辑器无时无刻都默认 utf-8 编码方式,可是后来我发现那只针对于在树莓派直接编辑的文件,而从Source Insight 传过来的打开查看编码方式后发现要么是 cp936 要么是 utf-8 ,如果是 utf-8 那么还好,我们不需要做任何修改,可如果是 cp936 ,那么我们就需要将编码方式转换为系统默认的 utf-8 ,怎么修改呢,如下:
命令行模式下 :set fileencoding=utf-8 ,然后回车并保存。

退出编译后发现printf()可以输出正常的中文了,舒服。

此外我们最好将Source Insight编码方式也改为utf-8 (虽然我试着改过但发现并没什么影响):
https://jingyan.baidu.com/article/6525d4b1977ab3ac7d2e94ec.html

指令说明

locale——查看Linux系统的编码方式
:set fileencoding——查看编码方式(命令行模式下)
:set fileencoding=编码方式——修改编码方式(命令行模式下)

以上便是我的解决方法,自我感觉都比较麻烦,若大佬有何简单的方法也希望大佬告知一下,先行谢过哈哈 😮

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值