HarmonyOS 鸿蒙Next如何处理base64解码含不支持字符The input string contains unsupported characters

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

HarmonyOS 鸿蒙Next如何处理base64解码含不支持字符The input string contains unsupported characters

base64解码报错

Error name: Error  
Error message: The input string contains unsupported characters  
Error code: -1  

该如何处理
2 回复

根据报错信息提示:输入字符串包含不支持的字符,可以先把字符串处理一下,参考以下demo

// 字符串转成字节流
function stringToUint8Array(str: string) {
  return new Uint8Array(buffer.from(str, 'utf-8').buffer);
}

// 字节流转成可理解的字符串
function uint8ArrayToString(array: Uint8Array): string {
  // 将UTF-8编码转换成Unicode编码
  let out: string = "";
  let index: number = 0;
  let len: number = array.length;
  while (index < len) {
    let character = array[index++];
    switch (character >> 4) {
      case 0:
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:
      case 6:
      case 7:
        out += String.fromCharCode(character); 
        break;
      case 12:
      case 13:
        out += String.fromCharCode(((character & 0x1F) << 6) | (array[index++] & 0x3F));
        break;
      case 14:
        out += String.fromCharCode(((character & 0x0F) << 12) | ((array[index++] & 0x3F) << 6) | ((array[index++] & 0x3F) << 0));
        break;
      default:
        break;
    }
  }
  return out;
}

function doDecryption(encodeString: string) {
  let base64_ = new util.Base64Helper();
  let decodeArr: Uint8Array = base64_.decodeSync(encodeString);
  let decodeStr = uint8ArrayToString(decodeArr);

  log.info('doEncrypted, decodeArr: ' + decodeArr);
  log.info('doEncrypted, decodeStr: ' + decodeStr);
}

更多关于HarmonyOS 鸿蒙Next如何处理base64解码含不支持字符The input string contains unsupported characters的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)系统中处理base64解码时遇到"The input string contains unsupported characters"错误,通常意味着输入的base64字符串包含了不在标准base64字符集(A-Z, a-z, 0-9, +, /)中的字符,或者可能包含了由于编码或传输错误引入的非法字符,如空格、换行符等。

为了解决这个问题,可以采取以下步骤:

  1. 验证输入字符串:确保输入的base64字符串仅包含有效的base64字符。检查并移除任何空格、换行符、制表符或其他非base64字符。

  2. 使用标准库函数:鸿蒙系统提供了处理base64编码和解码的API。确保你使用的是这些API,而不是自行实现的解码逻辑,以减少错误的可能性。

  3. 错误处理:在解码前,可以添加逻辑来检查并清理输入字符串,或者捕获解码过程中可能抛出的异常,并给出相应的错误提示。

  4. 查阅文档:详细查阅鸿蒙系统的官方文档,了解base64解码API的具体用法和限制。

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

回到顶部