使用java编程恢复乱码
在Java语言String类中:
- public byte[] getBytes(String charsetName):将一个字符串按指定charset编码为二进制形式的数组
- public String(byte bytes[], String charsetName):将指定的 byte 数组按指定的 charset 解码为一个字符串
对于简单乱码可以使用这两个方法进行暴力破解
样本代码如下:
import java.util.Arrays;
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args) throws Exception {
recover("ǿ׳µÄÈËÉúÎÞÐè½âÊÍ");
}
public static void recover(String str) throws Exception{
String[] charsets = new String[]{"windows-1252","GB18030","Big5","UTF-8"};
for(int i=0;i<charsets.length;i++){
for(int j=0;j<charsets.length;j++){
if(i!=j){
String s = new String(str.getBytes(charsets[i]),charsets[j]);
System.out.println(s+" "+"正确编码: "+charsets[j]+", 错误解码: "+charsets[i]);
System.out.println();
}
}
}
}
}
运行程序,在输出结果中寻找可能的答案