代码文件的编码问题

souceinsight和其他编辑器混用出现的乱码

SourceInsight和Sublime Text是大家比较主流的代码编辑器(或阅读器),有时混用时,会出现中文乱码的问题,这里就是要分析并解决它

如何知道文件的编码

使用下面这个python代码,就可以得到文件的编码方式,其中需要额外安装python的magic库,通过如下进行安装

apt install python-magic

实现代码如下:

#!/usr/bin/python
import magic
import sys
blob = open(sys.argv[1]).read()
m = magic.open(magic.MAGIC_MIME_ENCODING)
m.load()
encoding = m.buffer(blob)
print(sys.argv[1])
print(encoding)

通过如下语句可以方便使用:

find /path/to/folder -name "*.c" | xargs -i python read_file_codec.py {}

(假设上面代码放入read_file_codec.py中)

现在的代码编码情况

可以发现,大部分的自己项目的代码文件,都是iso-8859-1。
源代码的文件,基本都是ascii编码
sublime text默认文件为ascii,如果加入了中文,自动转存为utf8

异常情况

sourceinsight和sublime text混用后,有时会出现异常,将本来iso-8859-1存为了utf8.
狗血的是,source insight居然不能完美支持utf8(中文乱码)(网上插件有bug,不推荐)
因此,还是需要将utf8的文件转为iso-8859-1

转码

找到utf8文件后,采用linux的iconv指令可以简单搞定

iconv -f utf-8  -t iso-8859-1 file_with_utf8.c -o file_after_transfer.c
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值