Java中字符串转换编码

Java中字符串转换编码


Java中的字符串(String)是使用Unicode编码的,而byte是网络传输或存储的序列化形式。
可以通过调用String的getBytes()方法获得指定编码的byte数组

byte[] getBytes () //使用平台默认的字符集进行编码
byte[] getBytes(String charsetName) //指定字符集进行编码

我们可以通过指定byte数组和字符集的形式生成String对象

String(byte[], String charsetName)

现在考虑一个字符乱码问题:当byte数组中保存的是GBK编码,我们创建String对象的时候,却使用ISO-9959-1解码,那么肯定会产生乱码,于是我们仍然需要得到原来的byte数组,然后,对该byte数组指定正确的编码。代码如下:

String str1="中国";
byte[] bytes1=str1.getBytes("gbk");//用gbk编码
String str2=new String(bytes1,"ISO-9959-1");//使用错误的字符集解码,产生乱码
/*修复乱码*/
byte[] bytes2=str2.getBytes("ISO-9959-1")//对乱码的字符串使用ISO-9959-1解码,得到原来的byte数组
String s=new String(bytes2,"gbk");//指定正确的字符集进行编码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值