概述
问题:
项目在Mac上开发运行正常,但上Ubuntu出现报错NoclassDefaounderror: sun/misc/base64encoder
原因:
用到sun.misc.BASE64Encoder包的BASE64Encoder对字符串进行编码,但是将编码后的字符串输出后发现字符串中存在换行符rn
google 原来“回车换行符(rn)”是在Windows才有,而Linux只有换行(n),Mac只有回车(r)。
解决:
建议使用import org.apache.commons.codec.binary.Base64;进行替换
即
import sun.misc.BASE64Encoder;
return new BASE64Encoder().encode(encrypted);
替换为
import org.apache.commons.codec.binary.Base64;
return Base64.encodeBase64String(encrypted);
将
import sun.misc.BASE64Decoder;
byte[] encrypted1 = new BASE64Decoder().decodeBuffer(text);
替换为
import org.apache.commons.codec.binary.Base64;
byte[] encrypted1 =Base64.decodeBase64(text);
最后
以上就是悲凉小白菜为你收集整理的byte[]转base64不建议使用sun.misc.BASE64Encoder的全部内容,希望文章能够帮你解决byte[]转base64不建议使用sun.misc.BASE64Encoder所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复