GBK符号化のソースコードをUtf-8符号化のウィジェットに変換
7178 ワード
多くの場合、インターネットからダウンロードされるコードはGBK符号化、すなわちeclipseデフォルトの符号化である.プロジェクトではutf-8の符号化が規定される場合がある.
1つ1つのファイルを変換するのは面倒ですが、特にファイルの数が多くなった後です.自分で1つの変換の小さいプログラムを書いて、貼って、共有して、役に立つことを望みます:
1つ1つのファイルを変換するのは面倒ですが、特にファイルの数が多くなった後です.自分で1つの変換の小さいプログラムを書いて、貼って、共有して、役に立つことを望みます:
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileFilter;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.InputStreamReader;
- import java.io.OutputStreamWriter;
-
- /*
- * , JAVA
- * */
- class JavaFileFilter implements FileFilter{
-
- @Override
- public boolean accept(File pathname) {
- if(pathname.isDirectory()||pathname.getName().endsWith(".java"))
- return true;
- return false;
- }
-
- }
-
- public class GBKtoUTF8 {
-
- public void visit(File source,File dest){
- if(source.isDirectory()){// , dest
- new File(dest.getAbsolutePath()+File.separator+source.getName()).mkdirs();
-
- File[] files=source.listFiles(new JavaFileFilter());
- for (File file : files) {
- visit(file,new File(dest.getAbsolutePath()+File.separator+source.getName()));
- }
- }else{
- // ,
- transform(source,dest);
- }
- }
- public void transform(File source,File dest){
- try {
- BufferedReader reader=new BufferedReader(new InputStreamReader(new FileInputStream(source),"gbk"));
- BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(dest.getAbsolutePath()+File.separator+source.getName())),"utf-8"));
- String line=null;
- while((line=reader.readLine())!=null){
- writer.write(line+"
");
- }
- reader.close();
- writer.close();
- } catch (Exception e) {
- // TODO: handle exception
- e.printStackTrace();
- }
- }
- public static void main(String[] args) {
-
- new GBKtoUTF8().visit(new File("E:/ProjectName"),new File("E:/transfor"));
- }
- }