HarmonyOS 鸿蒙Next如何处理base64解码含不支持字符The input string contains unsupported characters
HarmonyOS 鸿蒙Next如何处理base64解码含不支持字符The input string contains unsupported characters
base64解码报错
Error name: Error
Error message: The input string contains unsupported characters
Error code: -1
该如何处理
根据报错信息提示:输入字符串包含不支持的字符,可以先把字符串处理一下,参考以下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, +, /)中的字符,或者可能包含了由于编码或传输错误引入的非法字符,如空格、换行符等。
为了解决这个问题,可以采取以下步骤:
-
验证输入字符串:确保输入的base64字符串仅包含有效的base64字符。检查并移除任何空格、换行符、制表符或其他非base64字符。
-
使用标准库函数:鸿蒙系统提供了处理base64编码和解码的API。确保你使用的是这些API,而不是自行实现的解码逻辑,以减少错误的可能性。
-
错误处理:在解码前,可以添加逻辑来检查并清理输入字符串,或者捕获解码过程中可能抛出的异常,并给出相应的错误提示。
-
查阅文档:详细查阅鸿蒙系统的官方文档,了解base64解码API的具体用法和限制。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html