最近都在看别人的一些代码,其中中苦恼的是将别人写的工程导入Eclipse里的时候,java文件出现了乱码。因为工程的原始编码是GBK的,但是我一般使用的是UTF-8的编码,结果就会出现编码不一致,出现代码乱码的情况。
也试过几种方法比如在eclipse中修改文件的编码,虽然在显示时是解决了乱码的问题,但是在运行时就会出现乱码情况,我新建的文件是UTF-8,原来导入的又是GBK,所以就会出现乱码。
最笨的方法就是将GBK的文件用记事本打开,一个一个copy到eclipse里,这个方法是可行的,可以解决编码问题,但是一但文件多起来,这个方法就是一件很累人的事情了。。。。
一气之下决定写个程序来实现自动转换编码的方法,其实想想也是很简单的,只不过是让机器帮我们实现记事本打开然后copy到别一个UTF-8文件的过程。
废话不多说,直接上代码吧:
package com.buptsse.ate.utils;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.io.Writer;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
*
* @author linzhe
* @email m23linzhe@gmail.com
* @date 2012-5-23
*/
public class ConverEncoding {
/**
*
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
String srcDir = "E:\\mining\\tools\\ictclas4j\\ictclas4j\\src";
List<String> files = new ArrayList<String>();
fetchFileList(srcDir, files, ".java");
for(String fileName : files){
convert(fileName, "GBK", fileName, "UTF-8");
}
}
public static void convert(String oldFile, String oldCharset, String newFlie, String newCharset){
BufferedReader bin;
FileOutputStream fos;
StringBuffer content = new StringBuffer();
try {
System.out.println(oldFile);
bin = new BufferedReader(new InputStreamReader(new FileInputStream(oldFile), "gbk"));
String line = null;
while((line=bin.readLine())!=null){
// System.out.println("content:" + content);
content.append(line);
content.append(System.getProperty("line.separator"));
}
bin.close();
File dir = new File(newFlie.substring(0, newFlie.lastIndexOf("\\")));
if(!dir.exists()){
dir.mkdirs();
}
fos = new FileOutputStream(newFlie);
Writer out = new OutputStreamWriter(fos, newCharset);
out.write(content.toString());
out.close();
fos.close();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void fetchFileList(String strPath, List<String> filelist, final String regex) {
File dir = new File(strPath);
File[] files = dir.listFiles();
Pattern p = Pattern.compile(regex);
if (files == null)
return;
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
fetchFileList(files[i].getAbsolutePath(), filelist, regex);
} else {
String strFileName = files[i].getAbsolutePath().toLowerCase();
Matcher m = p.matcher(strFileName);
if(m.find()){
filelist.add(strFileName);
}
}
}
}
}
注释就没有多写了,基本的思想都在上面表述完成了。
可能有的朋友会问为什么要写到原来的文件里,也许你自己试试就能发现其中的原因,哈哈。
因为windows是不区分大小写的,所以如果写到一个新的文件里的话就会自动的将文件名字转成了小写,但是java里的类名一般可是大写的,哈哈,到此转换方法完成。
引用
分享到:
相关推荐
idea、Eclipse等项目导入.java文件中文乱码完美解决方案:文件夹下所有GBK编码的.java一键转为utf-8,操作方式:将GBK2UTF8.jar文件考到需要转码项目目录,在当前位置运行控制台,输入命令java -jar GBK2UTF8.jar,...
在使用Eclipse进行JSP开发时,中文乱码是一个常见的问题,尤其是在处理包含中文字符的文件时。Eclipse作为一个强大的Java集成开发环境,虽然功能强大,但如果没有正确配置,可能会出现显示中文字符时的乱码现象。...
二、Eclipse导入项目时可能出现的问题及解决方案 1. 项目缺失文件 - 检查项目文件是否完整,确保所有必要的文件和文件夹都在。可以与一个已知正常的项目进行比较,看看是否有遗漏的部分。 2. .project文件乱码或...
在使用Eclipse开发Java或其他项目时,可能会遇到一个常见的问题,即当导入包含中文注释的工程后,这些注释显示为乱码。这主要由于编码格式不匹配导致的,Eclipse默认使用的是UTF-8编码,而工程或文件可能采用的是...
Eclipse 编译环境设置和中文乱码解决方案 在 Android 开发中,Eclipse 编译环境的设置和中文乱码问题是两个常见的问题。本文将通过图文并茂的方式,解决这两个问题,从而帮助开发者快速解决编译环境和中文乱码问题...
在Eclipse开发环境中,中文乱码问题是一个常见的困扰,尤其是在处理包含中文字符的文件时。Eclipse默认的文件编码可能不支持中文,如ISO-8859-1,这会导致在创建或编辑包含中文的文件时出现乱码。为了解决这个问题,...
本教学视频针对这一常见问题提供了详细的解决方案,旨在帮助开发者顺利处理Eclipse代码编辑器中的中文乱码问题,提高开发效率。 首先,我们需要了解为什么会出现中文乱码。这通常与编码格式不一致有关。Eclipse默认...
针对这种情况,"Eclipse项目的GBK编码转为UTF-8插件"提供了一个便捷的解决方案。这个插件可以快速地将整个Eclipse项目中的GBK编码文件批量转换为UTF-8编码,无需手动操作。使用该插件,用户只需在Eclipse中安装并...
"工作流乱码解决方案"这个主题就针对Activiti5在处理中文或其他非ASCII字符时可能出现的显示异常进行探讨。 Activiti5是一个开源的工作流和业务流程管理平台,它基于Java,支持BPMN 2.0标准,为企业提供了一套强大...
本篇文章主要探讨了在MyEclipse 5.5环境下进行SSH整合时出现的中文乱码问题以及一种可能的解决方案。 首先,我们需要理解SSH框架的组成部分。Struts2是MVC设计模式中的Controller层,负责处理用户请求并转发到相应...
"eclipse项目编码转换插件"就是这样的解决方案,它能够帮助开发者方便地将GBK编码的项目转换为UTF-8编码,以确保在不同环境下正确显示字符,避免出现乱码问题。 首先,我们需要理解GBK和UTF-8编码的区别。GBK是基于...
##### 2.2 解决方案 - **POM文件配置** 在`pom.xml`文件中,通过修改`maven-javadoc-plugin`插件的相关配置来指定编码格式为GBK或UTF-8。 ```xml <groupId>org.apache.maven.plugins <artifactId>maven...
5. **常见问题与解决方案** - 如果出现汉化不全的情况,可以尝试更新或重新安装相关插件。 - 如果遇到Eclipse启动异常,检查是否安装过程中有错误,或尝试卸载后重装。 - 如果中文显示乱码,检查系统编码设置,...
通过自动化处理中文字符到ASCII的转换,它为开发者提供了一个便捷、可靠的解决方案,使得在Eclipse环境下管理多语言配置文件变得更加轻松。如果你的项目中涉及大量.properties文件,这款插件无疑将大大提升你的工作...
总之,"eclipse转码插件.zip"提供的工具是一个方便的解决方案,用于在Eclipse环境中快速、高效地处理编码转换问题。通过正确安装和使用这个插件,开发者可以轻松地将GBK编码的项目转换为更通用的UTF-8编码,从而更好...
本教程主要介绍如何在Eclipse环境中,使用JSP文件链接SQLServer2012、Oracle和MySQL这三种常见的关系型数据库,提供详细的操作步骤和可能遇到的问题解决方案。 首先,让我们了解Eclipse。Eclipse是一款开源的集成...
- **解决方案:** 修改文件编码为Eclipse的设置编码,或者在Eclipse中统一设置所有文件的编码格式。 **7. 调整透视图为Java EE** - **更改透视图:** 通过工具栏上的透视图切换按钮来调整。 **8. 新建workspace时...
**问题背景:** 在使用Eclipse进行Java开发时,经常会遇到中文乱码的情况,这主要是因为文件编码设置不当导致的。 **解决方案:** 1. **全局编码设置:** - 打开Eclipse,依次点击`Window` -> `Preferences` -> `...
《MyEclipse资源文件中文插件详解:针对Eclipse 3.0-3.2的高效解决方案》 在软件开发过程中,尤其是对于中文环境的应用,开发者经常需要处理大量的中文资源文件,例如.properties配置文件。在Eclipse这个强大的Java...
"编码转换工具.zip" 提供了一个解决方案,特别针对Eclipse和Myeclipse用户,帮助他们解决因编码格式不一致而导致的中文乱码问题。这个压缩包内的核心文件 "com.lifesting.tool.jar" 是一个Java编写的工具类库,它...