Java-恢复乱码

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);
				}
			}
		}
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值