linux转码命令行和python两种实现

本文介绍了如何使用Python实现文件编码转换,包括检测文件编码、转码并验证的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


今天从windows拷到linux的文件出现乱码,其实直接通过file, iconv命令转码就行了

/*如果是命令行来实现的话,也是可以的,而且从某种程度上来说是可能更加便捷的*/
file genghao.cpp /*根据这个可以知道这个文件的大概编码类型*/
iconv -l
/*看看我们的iconv工具是否支持这种编码,不过不支持,选择一个比较接近的就行*/
iconv -f  XXXX
(原始编码) -t YYY(你想要的编码) genghao.cpp(原始文件)  genhao.cpp(目标文件)

如果希望多了解下上面几个指令,可以参考博文:http://blog.csdn.net/echoisland/article/details/6660619, 里面同时有提到file工具可能出现误判的情况

作为一个不安分的人,一个小的功能可以通过不同的工具来实现,用脚本来实现转码也是很方便的
什么语言呢?其实php, python , shell ... , 甚至跟高级的C++,C都可以用相应的文件操作和一些接口来实现


闲的蛋疼就想用python实现转码

import chardet

fp = open('genhao.cpp', 'r+')

/*readlines读取文件,以行为单位的一个list*/
content ='\n'.join(fp.readlines())
print content
/*文件指针回到文件开头*/
fp.seek(0)

/*read读取整个文件*/
content = fp.read()
print content
fp.seek(0)

/*readline读取1行*/
tmp = fp.readline()
while tmp:
    content += tmp
    tmp = fp.readline()
print content

/*判断文件的编码*/
charinfo = chardet.detect(content)
encoding = charinfo['encoding']
/*转成utf-8*/
content = content.decode(encoding).encode('utf-8')
print content

搞定,等有时间吧其他工具的实现也写写。

按照惯例, 水一句:语言,只是工具,想法和问题 才是重点







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值