GBK中文乱码恢复:鍙戣捣璁㈠崟鏀�粯鍏ュ彛

admin 4393次浏览

摘要:当我们在浏览器中遇到类似“鍙戣捣璁㈠崟鏀�粯鍏ュ彛”这样的中文乱码(GBK等),在不知道是哪种编码转哪种编码出现的情况,该如何恢复

当我们在浏览器中遇到类似“鍙戣捣璁㈠崟鏀�粯鍏ュ彛”这样的中文乱码(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,导致的这种错误!

如果我们不知道原始中文设置的什么编码,而在浏览器或开发环境中却出现“鍙戣捣璁㈠崟鏀�粯鍏ュ彛”这种中文乱码错误,那么就可以直接用上方的工具类输出结果查看即可。

来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/java/1095.html

相关文章
友情链接