HarmonyOS 鸿蒙Next 中文base64加密解密乱码
HarmonyOS 鸿蒙Next 中文base64加密解密乱码
let user_data_json=’{“act”:“GetPurchased”,“uid”:“10074013”,“page”:1,“tag”:1,“flg”:1,“title”:“刘”}’
let user_data_encode_1 = Base64.encodeToString(Base64.stringToBytes(user_data_json));
console.error(“加密测试”+user_data_encode_1)
let decode_1 = Base64.bytesToString(Base64.decode(String(user_data_encode_1)));
console.error(“加密测试解密”+decode_1)
中文“刘”,加密后再解密无法识别,该如何转码?
let user_data_encode_1 = Base64.encodeToString(Base64.stringToBytes(user_data_json));
console.error(“加密测试”+user_data_encode_1)
let decode_1 = Base64.bytesToString(Base64.decode(String(user_data_encode_1)));
console.error(“加密测试解密”+decode_1)
中文“刘”,加密后再解密无法识别,该如何转码?
更多关于HarmonyOS 鸿蒙Next 中文base64加密解密乱码的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
试试这段代码:
let textEncoder = new util.TextEncoder("utf-8");
let input='{"act":"GetPurchased","uid":"10074013","page":1,"tag":1,"flg":1,"title":"刘"}';
let shuzu= textEncoder.encodeInto(input)
// 解密前
hilog.info(0xFF00, "testTag",'解密前'+JSON.stringify(shuzu));
let that = new util.Base64Helper();
let result = that.encodeToStringSync(shuzu);
let waitDecodeArr = that.decodeSync(result)
let textDecoder = util.TextDecoder.create('utf-8')
let decodeResult = textDecoder.decodeWithStream(waitDecodeArr)
hilog.info(0xFF00, "testTag",'解压后'+decodeResult);
更多关于HarmonyOS 鸿蒙Next 中文base64加密解密乱码的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next系统中,如果遇到中文base64加密解密出现乱码的问题,通常这是由于字符编码不一致导致的。
在base64编码过程中,原始数据(如中文)需按特定编码(如UTF-8)转换为字节序列,再进行编码。解码时,base64字符串需先解码为字节序列,再按相同的编码转换为字符串。如果编码和解码时使用的字符编码不一致,就会导致乱码。
解决步骤:
- 确认加密前中文文本的编码方式(如UTF-8)。
- 使用该编码方式将中文文本转换为字节序列。
- 对字节序列进行base64编码。
- 在解密时,先将base64字符串解码为字节序列。
- 使用与加密时相同的编码方式(如UTF-8)将字节序列转换回字符串。
请检查你的编码和解码流程是否一致,特别是在处理中文文本时。确保在编码和解码过程中使用相同的字符编码标准。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。