当我们在浏览器中遇到类似“鍙戣捣璁㈠崟鏀粯鍏ュ彛”这样的中文乱码(GBK等),在不知道是哪种编码转哪种编码出现的情况,该如何恢复中文乱码呢?
如果你懂Java,那么你一定明白这句话表示的是什么:
String newStr = new String("鍙戣捣璁㈠崟鏀\uE219粯鍏ュ彛".getBytes("GBK"),"UTF-8");它表示如果错误的中文乱码之前设置的是GBK,而你浏览器或开发环境是UTF-8,造成了中文乱码“鍙戣捣璁㈠崟鏀粯鍏ュ彛”这种效果,那么可以借用上面的方法进行还原中文。
如果你什么都不知道,可以借用下方的工具类来恢复中文乱码问题,代码如下:
public class CodeDemo {
    private static String[] charsetArr = {"UTF-8","GB18030","GB2312","GBK","Windows-1252","ISO8859-1"};
    public static void testAllCharset(String text) {
        if (text == null || text.length() == 0) {
            System.out.println("文本不能为空");
            return;
        }
        System.out.println("说明原始设置编码是     当前浏览器编码(出错)     乱码恢复的内容");
        printSeparator();
        for (String curCharset : charsetArr) {
            try{
                byte[] btArr = text.getBytes(curCharset);
                for (String originCharset : charsetArr) {
                    if (originCharset.equals(curCharset)) {
                        continue;
                    }
                    String encodeText = new String(btArr,originCharset);
                    printTable(curCharset, originCharset, encodeText);
                }
                printSeparator();
            }catch (Exception ex){
                ex.printStackTrace();
            }
        }
    }
    private static void printSeparator() {
        System.out.println("--------------------------------------------------------");
    }
    //打印表格
    private static void printTable(String curCharset, String originCharset, String encodeText) {
        System.out.print(curCharset);
        for (int i = 0; i < 15 - curCharset.length(); i++) {
            System.out.print(" ");
        }
        System.out.print("|   " + originCharset);
        for (int i = 0; i < 16 - originCharset.length(); i++) {
            System.out.print(" ");
        }
        System.out.println("|     " + encodeText);
    }
    public static void main(String[] args){
        //测试乱码
        testAllCharset("鍙戣捣璁㈠崟鏀\uE219粯鍏ュ彛");
    }
}上方代码输出的结果如下所示:

从上方截图不难看出,原来我们出现标题中的这种中文乱码,是因为原始编码是GBK,而浏览器或开发环境设置的编码是UTF-8,导致的这种错误!
如果我们不知道原始中文设置的什么编码,而在浏览器或开发环境中却出现“鍙戣捣璁㈠崟鏀粯鍏ュ彛”这种中文乱码错误,那么就可以直接用上方的工具类输出结果查看即可。