打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Android之解决Base64 encode中文乱码问题

1、问题

需求需要,把字符串转化为UTF-8编码之后需要base64.encode处理,但是我写了

String ss = new String(value.getbytes("UTF-8"), "UTF-8");

Base64.encode(ss);


死活出不来,依然乱码,然后写了检测当前编码格式,然后转化成UTF-8,

String ss = new String(value.getbytes("GB1312"), "UTF-8");
Base64.encode(ss);

还是不行

2、原因

代码封装里面Base64.encode(String s)函数里面写了这段代码

{

     byte[]  bytes =  s.getBytes("US-ASCII");

     encodeBytes(bytes);

}

很明显,特么转成了“US-ASCII”编码格式,前面转的UTF-8格式做了无用功,特么像日了狗一样

3、解决办法和总结

不要写成把字符串转成UTF-8,因为到时候还是得转成bytes,传到Base64.encode函数里面去,我们直接这样转

Base64.encodeBytes(value.getBytes("UTF-8"));

以后一定要记得先看源码,然后分析,还有就是要记得Base64执行encode的时候,我们直接传编码格式的字节流进去是最安全的,切记,以后不要换这个错误了。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
技术干货 | 让渗透从黑盒变为“灰盒”
字符,字节和编码
【Java 基础专题】编码与乱码(04)---输出时的编码与乱码 - Java - 拼吾爱...
java下URL参数带中文的编码问题
GBK与UTF-8互转乱码详解
基于Lumisoft.NET组件开发碰到乱码等一些问题的解决
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服