1.console打印结果
先按照windows-1252获取字符串的二进制:[B@7fbe847c,然后按GB18030编码解读这个二进制,得到一个新的字符串:老马
先按照windows-1252获取字符串的二进制:[B@c2e1f26,然后按Big5编码解读这个二进制,得到一个新的字符串:橾鎮
先按照windows-1252获取字符串的二进制:[B@dcf3e99,然后按UTF-8编码解读这个二进制,得到一个新的字符串:����
先按照GB18030获取字符串的二进制:[B@75a1cd57,然后按windows-1252编码解读这个二进制,得到一个新的字符串:�0†8�0ˆ3�0‡0¨ª
先按照GB18030获取字符串的二进制:[B@3d012ddd,然后按Big5编码解读这个二进制,得到一个新的字符串:�0�8�0�3�0�0赤
先按照GB18030获取字符串的二进制:[B@6f2b958e,然后按UTF-8编码解读这个二进制,得到一个新的字符串:�0�8�0�3�0�0��
先按照Big5获取字符串的二进制:[B@1eb44e46,然后按windows-1252编码解读这个二进制,得到一个新的字符串:????
先按照Big5获取字符串的二进制:[B@6504e3b2,然后按GB18030编码解读这个二进制,得到一个新的字符串:????
先按照Big5获取字符串的二进制:[B@515f550a,然后按UTF-8编码解读这个二进制,得到一个新的字符串:????
先按照UTF-8获取字符串的二进制:[B@626b2d4a,然后按windows-1252编码解读这个二进制,得到一个新的字符串:ÀÃ�ÂÃ
先按照UTF-8获取字符串的二进制:[B@5e91993f,然后按GB18030编码解读这个二进制,得到一个新的字符串:脌脧脗铆
先按照UTF-8获取字符串的二进制:[B@1c4af82c,然后按Big5编码解读这个二进制,得到一个新的字符串:���穩
2.Java代码
package com.example.demo;
/**
* @Description
* @author 大都督
* @date 2018年12月29日
*/
public class Test {
public static void main(String[] args) throws Exception {
String str = "ÀÏÂí";
recover(str);
}
/**
* @Title: recover
* @Description: 恢复乱码
* @param str
* @author 大都督
* @date 2019年2月17日
* @return void
* @throws Exception
*/
private 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("先按照"+charsets[i]+"获取字符串的二进制:"+str.getBytes(charsets[i])+
",然后按"+charsets[j]+"编码解读这个二进制,得到一个新的字符串:"+s);
}
}
}
}
}