使用BASE64Encoder编码和BASE64Decoder解码中文时,偶数字的显示正常,但奇数就会在最后显示“?”,请高手帮忙

36397 2008-10-03 09:44:35
//BASE64Encoder编码
public static String getBASE64(String s) {
String yyy="";
if (s == null) return null;
BASE64Encoder enc = new BASE64Encoder();
System.out.println("开始编码="+enc.encode(s.getBytes()));
yyy=enc.encode(s.getBytes());
return yyy;
}

//BASE64Encoder解码
public static String getFromBASE64(String s) {
if (s == null)
return null;
BASE64Decoder decoder = new BASE64Decoder();
try {
byte[] b = decoder.decodeBuffer(s);
return new String(b);
} catch (Exception e) {
return null;
}
}

//运行结果
当要编码中文是偶数,如“我母亲中国人”,则解码正常
当要编码中文是奇数,如“母亲中国人”,则解码后,有一个“?”
英文也一样偶数正常,奇数就有“?”了
请高手帮忙
...全文
270 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengyilan88 2011-03-21
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
用你的代码测试并没有发生你所说那种情况:

    public static void main(String[] args) {
String str = "母亲中国人";
String base64 = getBASE64(str);
String orignal = getFromBASE64(base64);
System.out.println(orignal);
}


或者请说明应用程序的执行环境及调用代码。
sunyujia 2008-10-03
  • 打赏
  • 举报
回复
试试
http://blog.csdn.net/sunyujia/archive/2008/01/01/2008469.aspx

81,114

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧