今天从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
搞定,等有时间吧其他工具的实现也写写。
按照惯例, 水一句:语言,只是工具,想法和问题 才是重点