Eclipse用了一段时间,都是用的gbk编码的,突然想要规范下,强迫症犯了,于是将在Window->Preference->Appearances->Workspace修改Text file encoding为UFT-8,一点击确认,Oh,My God!中文都乱码了,一开始想的是用记事本将文件一个一个的另存为UTF-8格式,累死了,发现工程量太大,放弃了,转战代码,下面是可实现的代码,支持批量处理(即处理一个文件夹内的所有代码),不支持文件夹下还有文件夹的情况!代码如下:

package com.tfj.demo;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter; /**
* @function 将批量的gbk的乱码文件转换到utf8
* 将gbk的代码放到srcDir之下,转码置destDir之下,不支持srcDir之下有目录,srcDir目录与destDir目录不能一样
* @author Jacksile E-mail:tufujietec@foxmail.com
* @date 2016年1月16日 下午3:02:07
*/
public class UTF8Parser { static File srcDir = new File("E:\\eclipse2\\studyall\\src\\com\\tfj\\algorithm"); // 待转码的GBK格式文件夹
static File destDir = new File("E:\\eclipse\\studyall\\src\\com\\tfj\\algorithm"); // 转码成UTF8的目标文件夹 public static void main(String[] args) {
// 1.判断是目录
if (!srcDir.isDirectory()) {
return;
}
// 2.遍历所有目录
File[] fs = srcDir.listFiles(); // 创建目标目录
if (!destDir.exists()) {
destDir.mkdirs();
} try {
new UTF8Parser().parse(fs);
} catch (IOException e) {
e.printStackTrace();
}
} /**
* 目录就迭代遍历;文件就重编码
*/
private void parse(File[] fs) throws IOException {
for (File file : fs) {
if (!file.isDirectory()) {
File destFile = new File(destDir, file.getName());
parse2UTF_8(file, destFile);
} else {
parse(file.listFiles());
}
}
} /**
*/
private void parse2UTF_8(File file, File destFile) throws IOException {
StringBuffer msg = new StringBuffer();
// 读写对象
PrintWriter ps = new PrintWriter(new OutputStreamWriter(new FileOutputStream(destFile,
false), "utf8"));
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file),
"gbk")); // 读写动作
String line = br.readLine();
while (line != null) {
msg.append(line).append("\r\n");
line = br.readLine();
}
ps.write(msg.toString());
br.close();
ps.flush();
ps.close();
} }

代码中修改文件夹名,运行,从转换到的文件夹复制所有文件到原来文件夹,代码中修改文件夹名。。。反反复复这三步,发现我的文件夹也太多了,这样也会累个半死,于是只能转战转换工具,网上搜索:gbk转utf-8软件,一大堆工具,很多都是支持批量处理,打开工具,选择一个文件夹(这下可以是任意的,没有限制,上面代码还限制文件夹中不能存在文件夹),轻轻松松转换,这下,编码问题彻底解决。唯一遗憾的是这样大批量处理会导致原先是utf-8的文件出现错误,所以建议批量处理时文件夹在最大化的情况下避免存在已经是utf-8的文件,否则适当缩小文件夹包含范围。

Eclipse修改编码后乱码解决的更多相关文章

  1. windows 控制台cmd乱码(及永久修改编码)的解决办法

    注册 windows 控制台cmd乱码(及永久修改编码)的解决办法 转载 2017年11月02日 22:49:52 1067 windows 控制台cmd乱码的解决办法 我本机的系统环境: OS Na ...

  2. vim 编辑 windows下的文本时出现乱码, 修改配置后 已解决

    最近用VIM 查看一个 WINDOWS下的文本,打开以后发现出现乱码,具体如上图. 最后在网上找到了一个解决方法: 原文地址: https://www.zhihu.com/question/22363 ...

  3. eclipse 修改编码

    在Eclipse的开发使用中,我们经常使用的是UTF-8,但是刚刚安装的或者是导入的项目是其他编码的默认是GBK的,这就造成我们的项目乱码,一些中文解析无法查看,对我们的开发造成不便. 工具/原料 E ...

  4. 在eclipse中输入.后提示解决

    1.调用系统自带的提示: 如果在eclipse中输入.后没有提示对应对象的属性和方法帮助列表,可以进行以下设置就可以了 eclipse -> Window-> Preferences-&g ...

  5. eclipse修改代码后都需要clean的解决办法

    问题描述: 用STS(类似于Eclipse)正在开发一个JavaWeb项目,但不知怎么的有一天,修改完Java代码,点击运行Tomcat,发现根本没有修改.刚刚开始的时候,因为一开始没找到原因而且工期 ...

  6. 解决Eclipse引用项目后乱码问题

    1.将General-Workspace-Text file encoding 设置成UTF-82.导入项目,如果文件乱码,点文件右键Properties-Resource-Text file enc ...

  7. eclipse 修改代码后无法生效,需要clean后才能生效的解决办法

    勾选project-->Bulid Automatically选项(自动编译)

  8. Eclipse 修改编码方式

    1.修改全局(Eclipse默认)文本编码方式 2.修改某个工程编码方式 右键工程点击”属性“后,如下图

  9. Eclipse修改编码方式

    1.修改工作空间默认编码 1.修改工作空间默认编码:window -> preferences ->  General -> Workspace 2.修改文件的编码 在Eclipse ...

随机推荐

  1. Catalyst揭秘 Day4 analyzer解析

    Catalyst揭秘 Day4 analyzer解析 今天继续解析catalyst,主要讲一下analyzer,在sql语句的处理流程中,analyzer是在sqlparse的基础上,把unresol ...

  2. max_size, capacity and size 的区别

    The max_size() function returns the maximum number of elements that the container can hold. The max_ ...

  3. Python的文件与文件夹操作

    Python的文件与文件夹操作 Python OS模块 1.重命名:os.rename(old, new) 2.删除:os.remove(file) 3.列出目录下的文件 :os.listdir(pa ...

  4. mac 下 sphinx + mysql + php 实现全文搜索(xampp)(1)

      原理: 使用sphinx 中的indexer 生成索引数据 service/web 端 利用searched 调用索引数据 步骤: 下载 sphinx: 下载地址:http://sphinxsea ...

  5. Mysql数据库备份和还原常用的命令

    Mysql数据库备份和还原常用的命令是进行Mysql数据库备份和还原的关键,没有命令,什么都无从做起,更谈不上什么备份还原,只有给系统这个命令,让它去执行,才能完成Mysql数据库备份和还原的操作,下 ...

  6. 二十、mysql mysqldump备份工具

    .备份所有数据库 mysqldump -uroot -p --all-database > c:\all.sql 备份所有数据库到c盘下的all,sql文件 .备份某个数据库 mysqldump ...

  7. Java字符串之性能优化

    基础类型转化成String 在程序中你可能时常会需要将别的类型转化成String,有时候可能是一些基础类型的值.在拼接字符串的时候,如果你有两个或者多个基础类型的值需要放到前面,你需要显式的将第一个值 ...

  8. springmvc+json

    1.在写我的springmvc demo时,由于要向前台返回相关信息,于是设置了@ResponseBody,但是要把对象转换成json格式,我却没有在xml文件里配置,所以报如下错误:HttpMedi ...

  9. xfire for web-Service

    1.0 XFire XFire是codeHaus组织提供的一个开源框架,它构建了POJO和SOA之间的桥梁,主要特性就是支持将POJO通过非常简单的方式发布成Web服务,这种处理方式不仅充分发挥了PO ...

  10. org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of com.chen.vo.Dept.parentId

    异常描述:执行以下的addAsHaveParentId2方法出现此异常: /*-----------------------类Dept.Dept.hbm.xml有parentId属性(数据库中有此列) ...