HarmonyOS 鸿蒙Next 中文base64加密解密乱码

发布于 1周前 作者 h691938207 来自 鸿蒙OS

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)


中文“刘”,加密后再解密无法识别,该如何转码? 


更多关于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字符串需先解码为字节序列,再按相同的编码转换为字符串。如果编码和解码时使用的字符编码不一致,就会导致乱码。

解决步骤:

  1. 确认加密前中文文本的编码方式(如UTF-8)。
  2. 使用该编码方式将中文文本转换为字节序列。
  3. 对字节序列进行base64编码。
  4. 在解密时,先将base64字符串解码为字节序列。
  5. 使用与加密时相同的编码方式(如UTF-8)将字节序列转换回字符串。

请检查你的编码和解码流程是否一致,特别是在处理中文文本时。确保在编码和解码过程中使用相同的字符编码标准。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部