当前位置: 技术问答>java相关
如何把bytes[]转换为String()
来源: 互联网 发布时间:2015-07-16
本文导语: 我在编一个base64编码/解码程序的时候,首先使用 sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder(); String dd="移动"; String str=encoder.encode(dd.getBytes("GB2312")); 做编码结果正确。 但是反过来,我用下面的程序做解码却不...
我在编一个base64编码/解码程序的时候,首先使用
sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder();
String dd="移动";
String str=encoder.encode(dd.getBytes("GB2312"));
做编码结果正确。
但是反过来,我用下面的程序做解码却不对:
sun.misc.BASE64Decoder decoder=new sun.misc.BASE64Decoder();
String kk=decoder.decodeBuffer(str).toString();
//此处的str为前面的编码结果
因为decoder.decodeBuffer(str)返回的是一个byte[]型的数据。
我想大概是我在从byte[]到String转化时出了问题。
高手指点
sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder();
String dd="移动";
String str=encoder.encode(dd.getBytes("GB2312"));
做编码结果正确。
但是反过来,我用下面的程序做解码却不对:
sun.misc.BASE64Decoder decoder=new sun.misc.BASE64Decoder();
String kk=decoder.decodeBuffer(str).toString();
//此处的str为前面的编码结果
因为decoder.decodeBuffer(str)返回的是一个byte[]型的数据。
我想大概是我在从byte[]到String转化时出了问题。
高手指点
|
try
{
sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder();
String dd="移动";
String str=encoder.encode(dd.getBytes("GB2312"));
sun.misc.BASE64Decoder decoder=new sun.misc.BASE64Decoder();
byte[] t= decoder.decodeBuffer(new String(str.getBytes("GB2312")));
String kk = new String(t);
System.out.println(kk);
}
catch(Exception e)
{
e.printStackTrace();
}
{
sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder();
String dd="移动";
String str=encoder.encode(dd.getBytes("GB2312"));
sun.misc.BASE64Decoder decoder=new sun.misc.BASE64Decoder();
byte[] t= decoder.decodeBuffer(new String(str.getBytes("GB2312")));
String kk = new String(t);
System.out.println(kk);
}
catch(Exception e)
{
e.printStackTrace();
}
|
new String(decoder.decodeBuffer(str))
|
用了用这个包
decoder.decodeBuffer(str)这个方法返回的就是数组
decoder.decodeBuffer(str).toString()这句话
相当于把这个数组按字符串打印出来
当然是数组了
decoder.decodeBuffer(str)这个方法返回的就是数组
decoder.decodeBuffer(str).toString()这句话
相当于把这个数组按字符串打印出来
当然是数组了