本文转载java_2000.net 在此对作者表示感谢!
怎样用eclipse把文件编码批量转换?包括JS,JSP,HTML 我说的不是页面本身的,而是 在ECLIPSE中,右键点击文件,选择属性,然后在右边的列表中选择 的这种,但这样只能一个一个的改,怎么能批量????? 呵呵!我平时也是一个个的改的! 刚才看了一下eclipse 的配置文件,找到如下方法,不过还是手工的哦!
在eclipse项目下有这么一个文件夹 .settings 下面有一个 org.eclipse.core.resources.prefs 文件 里面有类似这样的编码配置 INIFile code
#Wed Dec 26 12:59:37 CST 2007eclipse.preferences.version=1encoding//test/BlackVSWhite.java=UTF-8
如果这里有的文件,替换成你要的编码就可以了。 如果没有? 你用任何办法,比如 dir /s > 1.txt , DOS 命令 拿到你要改的文件名列表,然后.... 自己弄吧,尽量多使用替换 我想,如果你要改的文件超过100个,这个方法应该快些,否则可能不如手工快! 我一会弄一个小程序,自动生成那个encoding// 部分看看,弄好了我再贴上来
package
zhj.Usual_Test;
import java.io.File;
import java.io.IOException;
public class ReadFile ... {
public static void main(String[] args) throws IOException...{
read("e:/workplace/test", "UTF-8");
}
private static final String[] extentions = ...{ "java", "js", "html", "htm" };
public static void read(String filepath, String charset) throws IOException ...{
File f = new File(filepath);// 定义文件路径
String path;
if (f.exists() && f.isDirectory()) ...{// 判断是文件还是目录
if (f.listFiles().length == 0) ...{// 若目录下没有文件则直接删除
return;
} else ...{// 若有则把文件放进数组,并判断是否有下级目录
File delFile[] = f.listFiles();
int i = f.listFiles().length;
for (int j = 0; j < i; j++) ...{
path = delFile[j].getAbsolutePath();
if (delFile[j].isDirectory()) ...{
read(path, charset);// 递归调用del方法并取得子目录路径
}
for (String ext : extentions) ...{
if (path.endsWith(ext)) ...{
System.out.println("encoding//"
+ path.replaceAll("/", "/") + "=" + charset);
break;
}
}
}
}
}
}
}
import java.io.File;
import java.io.IOException;
public class ReadFile ... {
public static void main(String[] args) throws IOException...{
read("e:/workplace/test", "UTF-8");
}
private static final String[] extentions = ...{ "java", "js", "html", "htm" };
public static void read(String filepath, String charset) throws IOException ...{
File f = new File(filepath);// 定义文件路径
String path;
if (f.exists() && f.isDirectory()) ...{// 判断是文件还是目录
if (f.listFiles().length == 0) ...{// 若目录下没有文件则直接删除
return;
} else ...{// 若有则把文件放进数组,并判断是否有下级目录
File delFile[] = f.listFiles();
int i = f.listFiles().length;
for (int j = 0; j < i; j++) ...{
path = delFile[j].getAbsolutePath();
if (delFile[j].isDirectory()) ...{
read(path, charset);// 递归调用del方法并取得子目录路径
}
for (String ext : extentions) ...{
if (path.endsWith(ext)) ...{
System.out.println("encoding//"
+ path.replaceAll("/", "/") + "=" + charset);
break;
}
}
}
}
}
}
}