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

在Android开发中,遇到将UTF-8编码的字符串进行Base64编码时出现乱码问题。原因是Base64.encode()内部使用了'US-ASCII'编码,导致转换失败。解决方法是直接使用Base64.encodeBytes(value.getBytes("UTF-8")),避免中间的无效转换,确保以UTF-8编码进行Base64编码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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格式做了无用功,特么像日了狗一样

 

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码莎拉蒂 .

你的鼓励是我最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值