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

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

参考文章

https://blog.csdn.net/imyang2007/article/details/7448177

原文地址:https://www.cnblogs.com/backwords/p/9657429.html

时间: 2024-10-10 15:33:33

Linux 中 Windows 中文乱码的相关文章

Linux中mysql中文乱码

问题描述:当我们在linux系统上装载mysql后操作数据库的时候,会出现中文乱码问题,比如做插入操作,发现添加到数据库的数据中文出现论码,下面就将解决linux下mysql中文乱码问题!: 环境centos6.5 1.打开Linux窗口,启动mysql: mysql -uroot -proot 2.连接mysql后输入: show variables like '%char%'; 3.配置/etc/my.cnf如下(如果/etc/my.cnf不存在,可以新建/etc/my.cnf文件): [c

解决linux系统中查看中文乱码问题

字符集就是一套文字符号及其编码.常用的字符集有:GBK 定长 双字节 不是国际标准,支持的系统不少UTF-8 非定长 1-4字节广泛支持,MYSQL也使用UTF-8当然了,字符集还有很多,以后再深入学习这部分内容. ①linux系统下的字符集由变量LANG控制. [[email protected] ~]# echo $LANG zh_CN.GB18030 ②export LANG="ZH_CN.GB18030"(临时变更字符集,重启后失效) ③在/etc/sysconfig/i18n

分布式监控系统Zabbix-3.0.3-完整安装记录(4)-解决zabbix监控图中出现中文乱码问题

之前部署了Zabbix-3.0.3监控系统,在安装数据库时已经将zabbix库设置了utf-8字符. 首先确定zabbix开启了中文支持功能:登录到zabbix服务器的数据目录下(前面部署的zabbix数据目录是/data/www/zabbix),打开 locales.inc.php文件[[email protected] include]# pwd/data/www/zabbix/include[[email protected] include]# vim locales.inc.php 然

解决vs2013下创建的python文件,到其他平台(如linux)下中文乱码(或运行时报SyntaxError: (unicode error) 'utf-8' codec can't decode byte...)

Vs2013中创建python文件,在文件中没输入中文时,编码为utf-8的,如图 接着,在里面输入几行中文后,再次用notepad++查看其编码如下,在vs下运行也报错(用cmd运行就不会): 根据以有经验,这是字符编码的问题了,试着将python文件的转化为utf-8的,直接在notepad++上转utf-8 无bom编码格式的,保存,打开vs,会有以下提示 这里不要选择no吧,不然可能会提示以下类似的错误 如果有提示,直接关闭,不然的话,vs又会将此文件保存为ascii格式了 解决vs20

Linux与windows文件乱码问题

*/--> Linux与windows文件乱码问题 Table of Contents 1. 简介 2. iconv详解 2.1. iconv –help查看帮助 2.2. 例子1 3. dos2unix详解 3.1. dos2unix –help查看帮助 3.2. 例子1 1 简介 由于windows系统是当下主流,对于我们这些工作在linux下的用户而言有点不太友好, 为啥这样讲了?因为我们经常会接触windows下的文件,由于格式的问题会出现汉字乱码! 不过幸运的是linux给我们提供解决

解决Centos 6.3 中 gedit中文乱码问题

1.安装gconf-editor yum list | grep conf-editor yum install gconf-editor 2.运行gconf-editor 设置: apps  ---> gedit-2  --->  preferences  ----> encoding auto-detected 项添加Add New list value: GB2312 shown_in_menu 项添加 New list value: GB2312  解决Centos 6.3 中

jsp get方式请求参数中包含中文乱码问题解决

1. 自己接收到参数之后在后台进行转码处理 2: 修改tomcat的配置文件  server.xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8"/> 即可 jsp get方式请求参数中包含中文乱码问题解决,布布扣,bubuk

C#中WebClient中文乱码的解决办法

原文:C#中WebClient中文乱码的解决办法 第一次尝试: string question = textBox1.Text.ToString(); WebClient youdao = new WebClient(); youdao.Encoding = System.Text.Encoding.GetEncoding("GB2312"); Uri uri = new Uri("http://xxxxxxxxxxxxxx"); textBox1.Text =yo

cocos2dx学习笔记(4)——VS2010中的中文乱码问题

当你想使用中文时,你是否有这样的一个困惑. 把样例中的HelloWorld改成中文的 "你好,世界!". 然后编译运行,发现居然是个乱码!!! 因为cocos2dx中使用的是UTF-8字符集,而VS中确实ANSI. 所以我们需要对其进行字符集转换. 然后纵里寻它求百度,终于找到了解决方案. 一个函数搞定! #include "cocos2d.h" char* toUTF(const char* strGB2312) { int iLen = MultiByteToW