java windows linux 乱码_Linux 中 Windows 中文乱码

Linux 下 Windows 源代码中文乱码

由于 windows 和 linux 对文本的编码方式不同,所以经常会有 windows 中生成的文本在 linux 中打开乱码的情况。

比如:

354fab19a2471deab737edab7ae83507.png

我面临的情况是现在有很多的源代码文件是处于这样的情况,如下图:

828b6a17988f710a5dfdc92562189ac8.png

其中每个文件夹中包含了 java 源代码文件和子文件夹。

后来转念一想,顺便扩展一下直接支持多种类型的源代码文件好了。

于是,就再次完善了一下。

对于我的情况,直接将脚本拖到 Tomcat-Java-Web-development-src-master_UTF-8 目录下,在命令行中运行即可(默认 java 源代码文件)

转码之后的结果:

c0e3979f415f435de793c3b2e94383a6.png

使用方法

直接将脚本放到要进行转码的文件夹中,运行即可。

程序接受两个参数或者没有参数(默认当前文件夹,java 源代码),第一个是要进行转码的文件目录,第二个是源代码文件类型。

源代码如下:

import os

import sys

rootPath = './'

fileType = 'java'

if len(sys.argv) == 2:

print("Two or zero argumens are needed \n python GbToUFT.py [path] [fileType] \n")

sys.exit(0)

elif len(sys.argv) == 3:

rootPath = sys.argv[1]

fileType = sys.argv[2]

for folderName,_,fileNames in os.walk(rootPath):

javaFileList = [fileName for fileName in fileNames if fileName.endswith('.' + fileType)]

for items in javaFileList:

print(items)

oldName = items

tempName = items[0:len(items)-5] + "_." + fileType

os.system("mv " + folderName + "/" + items + " " + folderName + "/" + tempName)

os.system("iconv -f gbk -t utf8 " + folderName + \

"/" + tempName + " > " + folderName + "/" + oldName)

os.system("rm -rf " + folderName + "/" + tempName)

GBToUTF.py

警告:对同一文件重复转码可能毁坏原文件,转码前请先备份。

参考文章

作者:Skipper

出处:http://www.cnblogs.com/backwords/p/9657429.html

本博客中未标明转载的文章归作者 Skipper 和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值