Linux 中 Windows 中文乱码
Linux 下 Windows 源代码中文乱码
由于 windows 和 linux 对文本的编码方式不同,所以经常会有 windows 中生成的文本在 linux 中打开乱码的情况。
比如:
我面临的情况是现在有很多的源代码文件是处于这样的情况,如下图:
其中每个文件夹中包含了 java 源代码文件和子文件夹。
在参考了网上的部分文章后(https://blog.csdn.net/imyang2007/article/details/7448177),我写了一个脚本用于将这个目录下的所有 java 源代码转码成 UTF-8。
后来转念一想,顺便扩展一下直接支持多种类型的源代码文件好了。
于是,就再次完善了一下。
对于我的情况,直接将脚本拖到 Tomcat-Java-Web-development-src-master_UTF-8 目录下,在命令行中运行即可(默认 java 源代码文件)
转码之后的结果:
使用方法
直接将脚本放到要进行转码的文件夹中,运行即可。
程序接受两个参数或者没有参数(默认当前文件夹,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
警告:对同一文件重复转码可能毁坏原文件,转码前请先备份。
原创文章,转载请注明出处。
参考文章

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
c++直接用count直接调用函数
今天下午一个同学问我为什么他的交集会出现这个情况,就是多出来个3 1 #include<iostream> 2 #define M 1000 3 using namespace std; 4 int jiaoji(int a[M],int b[M],int n) 5 { 6 int i,j,k=0,c[M]; 7 for(i=0;i<n;i++) 8 { 9 for(j=0;j<n;j++) 10 { 11 if(a[i]==b[j]) 12 { 13 c[k++]=a[i]; 14 continue; 15 } 16 } 17 } 18 for(i=0;i<k;i++) 19 cout<<c[i]<<" "; 20 } 21 int main() 22 { 23 int i,j,n,c[M],a[M],b[M]; 24 cin>>n; 25 for(i=0;i<n;i++) 26 cin>>a[i]; 27 for(j=0;j<n;j++) 28 cin>>b[j]; 29 co...
- 下一篇
为什么vue中data必须是一个函数
本篇文章从javascript原型链来解释为什么vue中data必须是一个函数 vue组件中的data必须是函数 类比引用数据类型 Object是引用数据类型,如果不是functionf返回,每个数组的data都是内存的同一个地址,一个组件中的数据改变了,其他组件中的数据也会发生改变。 js只有函数构成作用域(注意理解作用域,只有函数的{}构成作用域,对象的{}以及if(){}够不构成作用域),data是一个函数的时,每个组件实例都有自己的作用域,每个实例相互独立,不会相互影响 举例: 如果两个实例同时引用一个对象,那么当你修改其中一个属性的时候,另外一个实例也会跟着改变。 两个实例应该有自己各自的区域才对,需要通过下面的方法进行处理 这样每一个实例的data属性就都是独立的了,不会相互影响了。 vue组件的data必须是函数时js本身的特性带来额,与vue本身的设计没关系。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Red5直播服务器,属于Java语言的直播服务器
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Hadoop3单机部署,实现最简伪集群
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音