本文目录一览:
- 1、已经是GBK编码的Eclipse写的项目 怎么转到UTF8而不乱码
- 2、java 怎么gbk转码utf-8
- 3、java文件读取内容转码
- 4、如何批量的把所有文件夹中所有的扩展名为.java的文件转为.txt文件方便阅览!
已经是GBK编码的Eclipse写的项目 怎么转到UTF8而不乱码
1、基本思路:一个一个打开修改效率低,这个小需求也不用自己写程序实现。充分利用UltraEdit的强大能力。先用一个办法,一次性全部打开工程下的java文件,再用一个办法,一次性更改保存。一次性全部打开的方法在UE的快速打开功能中就有,但需要一点操作技巧。一次性更改保存我开始考虑用其录制宏的方式实现,但我的UE15.1这个版本,可能有一个BUG,录制ANSI转UTF-8的命令失败,只好用另一个办法,即先将ANSI转UTF-8的命令设置成一个快捷键,如CTRL+ALT+U,再录制一个保存文件再关闭文件的宏,并将其设置快捷键,如CTRL+ALT+I,这样只需要一次性全部打开java文件后,按住CTRL+ALT不放,反复交替按U和I,即可改好,虽然不完美(因为那个录制的BUG),但1分钟内,也可以改好200个java文件。
2、具体操作:打开UE,先设置好ANSI转UTF-8命令的快捷键,在UE的高级-配置中,打开配置选项,在查找中输入“键”便可找到键映射的设置,双击然后在其命令中找到FileConvASCIIToUTF8(Unicode Editor),在按下(多个)热键下的文本框中点击鼠标,然后按CTRL+ALT+U设置成快捷键。之后,一次性打开全部java文件,从UE的文件中,用快速打开菜单,在弹出的对话框中,如果显示的默认路径不是你的工程路径,那么你可以任意打开一个你工程目录下的文本文件,这样就让UE记住这个路径了,因为此处不能任选路径,我们希望一次性打开所有文件,而不是一个一个打开,当UE记住这个路径后,在上面的文本框中输入*.java,在最下边的checkbox中,勾选包括子目录,再点击打开,这样就可将工程下的所有java文件一次性打开。第三步就是录制一个宏,实现保存和关闭文件,并将其设置快捷键如CTRL+ALT+I,这个比较简单,在此略过。最后一步就是按快捷键了。
java 怎么gbk转码utf-8
方法一:
思路:先转为Unicode,然后转为GBK
String utf8 = new String(t.getBytes( "UTF-8"));
System.out.println(utf8);
String unicode = new String(utf8.getBytes(),"UTF-8");
System.out.println(unicode);
String gbk = new String(unicode.getBytes("GBK"));
System.out.println(gbk);
方法二:
public static void main(String[] args) {
String str="字符串编码转换";
try {
byte[] temp=str.getBytes("utf-8");//这里写原编码方式
byte[] newtemp=new String(temp,"utf-8").getBytes("gbk");//这里写转换后的编码方式
String newStr=new String(newtemp,"gbk");//这里写转换后的编码方式
System.out.println(newStr);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
java文件读取内容转码
读取的文件流如果是read(读取字节流的时候,中文就会是乱码)方法,所以现在全都是听过readline方式进行的读取。举例:
可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
System.out.println(str);//原样输出读到的内容
};
bre.close(),//关闭流,否则bre流会一直存在,直到程序运行结束。
除此之外,java文件读取的时候有中文就很出现乱码,通常获取到的文件中通常都是“iso8859-1”格式,需要转换为“UTF-8”格式。
如:String str = new String(str.getByte("iso8859-1"),"UTF-8");进行下强制转换后在进行读取即可。
备注:通常格式有GBK、UTf-8、iso8859-1、GB2312,如果上面的强制转换不成功,依次进行这些格式的尝试,肯定是可以解决问题的。
如何批量的把所有文件夹中所有的扩展名为.java的文件转为.txt文件方便阅览!
层层嵌套的话就要使用递归了 我给你写一个程序吧
这种方法是把所满足需求的文件都复制到另一个文件夹 如果要在源文件的基础上直接重命名的话就更简单了 用File 类的renameTo()方法 不用复制 看楼主需求了
import java.io.*;
public class Test{
public static void main(String[] arags)throws Exception{
File src = new File("C:\\Program Files\\Java");//这里传你文件夹源路径
File tar = new File("d:\\test");//这里传所有转换后的文件存放路径
tar.mkdirs();//创建这个目录
find(src,tar);
}
public static void find(File file,File tar)throws Exception{
File[] files = file.listFiles();
if(files == null)return;
for(File f : files){
if(f.isDirectory())
find(f,tar);
String name = f.getName().toLowerCase();
if(name.endsWith(".java")){
String str = name.replace(".java",".txt");
File newTar = new File(tar,str);
copy(f,newTar);
System.out.println(name);
}
}
}
public static void copy(File src,File tar)throws Exception{
int x = 512 10;//定义缓冲区大小为512KB
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(src),x);
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(tar),x);
int len;
byte[] data = new byte[x];
while((len = bis.read(data,0,x)) != -1)
bos.write(data,0,len);
bos.close();
bis.close();
}
}