|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 百日维新 于 2015-3-25 07:55 编辑
都在看别人的一些代码,其中中苦恼的是将别人写的工程导入Eclipse里的时候,java文件出现了乱码。因为工程的原始编码是GBK的,但是我一般使用的是UTF-8的编码,结果就会出现编码不一致,出现代码乱码的情况
解决方案一:更改项目的编码 项目 -> 右键 Properties - > Resource
解决方案二:更改java文件编码 Window -> Preference - > General - > Content Types - > Text - > Java Source File
解决方案三:最笨的方法就是将文件用记事本打开,一个一个copy到eclipse里,这个方法是可行的,可以解决编码问题,但是一但文件多起来,这个方法就是一件很累人的事情了。。。。
我写个程序来实现自动转换编码的方法,方便大家
- 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 Administrator
- *
- */
- public class GBKtoUTF8ConvertEncoding {
- public static void main(String[] args) throws Exception {
- String srcDir = "C:\\WorkPlace\\BcMe\\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);
- }
- }
- }
- }
- }
复制代码
|
评分
-
查看全部评分
|