1.字符串转码---适用于小批量转码
String name =new String(request.getParameter("name").getBytes("ISO8859-1"),"UTF-8");
2.IO流方式-----适用于大批量转码
package com.lrq.entity; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; /** * 将批量的gbk的乱码文件转换到utf8 将gbk的代码放到srcDir之下,转码置destDir之下 */ public class UTF8Parser { /** * * */ protected static File srcDir = new File("E:/develop/srcDir/"); // 待转码的GBK格式文件夹 protected static File destDir = new File("E:/develop/destDir/"); // 转码成UTF8的目标文件夹 public static void main(String[] args) { System.out.println("----start----"); // 1.判断是目录 if (!srcDir.isDirectory()) { return; } // 2.遍历所有目录 File[] fs = srcDir.listFiles(); // 创建目标目录 if (!destDir.exists()) { destDir.mkdirs(); } try { new UTF8Parser().parse(fs, destDir.getPath()); } catch (IOException e) { e.printStackTrace(); } System.out.println("-----end-----"); } /** * 目录迭代遍历;文件夹目录重新生成,文件转码重建 */ private void parse(File[] fs, String folder) throws IOException { for (File file : fs) { if (!file.isDirectory()) { if (file.getName().lastIndexOf(".java") < 0) { File destFile = new File(folder, file.getName()); destFile.createNewFile(); continue; } File destFile = new File(folder, file.getName()); parse2UTF8(file, destFile); } else { File newFolder = new File(file.getPath().replace( srcDir.getPath(), destDir.getPath())); newFolder.mkdirs(); parse(file.listFiles(), newFolder.getPath()); } } } /** * 转码UTF8 */ private void parse2UTF8(File file, File destFile) throws IOException { StringBuffer msg = new StringBuffer(); // 读写对象 PrintWriter ps = new PrintWriter(new OutputStreamWriter( new FileOutputStream(destFile, false), "utf8")); BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream(file), "gbk")); // 读写动作 String line = br.readLine(); while (line != null) { msg.append(line).append("\r\n"); line = br.readLine(); } ps.write(msg.toString()); br.close(); ps.flush(); ps.close(); } }