编码和解码

本文深入探讨编码与解码的过程,通过Java实例展示了如何将字符串转化为字节序列并进行不同编码的尝试,揭示了正确与错误编码带来的不同结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 编码的过程是拿字符去查ASCII码表,解码就是拿数字去查ASCII码表。总之都要查表~~

解错了码,可以用错的编回去,再用对的解;但是,编错了码,谁都救不了!

import java.io.UnsupportedEncodingException;

publicclass EncodeTest {

/**

*@paramargs

*@throwsUnsupportedEncodingException

*/

publicstaticvoid main(String[] args)throws UnsupportedEncodingException {

String str = "海南";

byte[] buf = str.getBytes();//编码,gb2312,使用平台的默认字符集将此String编码为byte序列,并将结果存储到一个新的byte数组中。

String newStr = new String(buf);//解码,gb2312

System.out.println(newStr);

newStr = new String(buf,"iso-8859-1");//解码,假如我不知道你用什么编码,我乱解码,用iso-8859-1的格式解码

System.out.println(newStr);//这里输出乱码

//解错了码,用错的码表再编回去

buf = newStr.getBytes("iso-8859-1");

//再用正确的码表再解码

newStr = new String(buf);

System.out.println(newStr);

//编错了码,神仙也救不了了,找不到,随便分配两个码,所以解回去的不知道是什么码,不会再是原来的了。

str = "海南";

buf = str.getBytes("iso-8859-1");//编码

newStr = new String(buf);

System.out.println(newStr);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值