HarmonyOS 鸿蒙Next:请问 ArkTs如何将string 转换为 Uint8Array

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

HarmonyOS 鸿蒙Next:请问 ArkTs如何将string 转换为 Uint8Array 在使用摘要算法加密字符串的时候,发现需要传进去一个Datablob,

我需要加密一个字符串,该如何将它转换为Unit8Array

当前api为10

// Set algName based on the algorithm supported.
let sha = cryptoFramework.createMd("SHA256");
Logger.info(TAG, " -> " + sha.algName);
let blob: cryptoFramework.DataBlob = {
  // 如何将 str -> Unit8Array
  data: stringToUnint8Array(str)
}
sha.update(blob, (err) => {

})

更多关于HarmonyOS 鸿蒙Next:请问 ArkTs如何将string 转换为 Uint8Array的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复
let str="哈哈"
//编码
let buff=new util.TextEncoder().encodeInto(str); //utf-8
//解码
let str2=util.TextDecoder.create("utf-8").decodeWithStream(new Uint8Array(buff));
console.info(str2);

更多关于HarmonyOS 鸿蒙Next:请问 ArkTs如何将string 转换为 Uint8Array的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


decodeWithStream已经废弃了,用decodeToString

请问怎么实现把Uint8Array转回string呢

function stringToUint8Array(str: string) {
  let arr = new Uint8Array(str.length);
  for (let i = 0, j = str.length; i < j; ++i) {
    arr[i] = str.charCodeAt(i);
  }
  return arr;
}

这个中文不行,新进来的朋友记得使用上面回答的方法,这个可以


```plaintext
哈哈

在HarmonyOS鸿蒙Next中,ArkTs(Ark TypeScript)框架提供了一些内置的函数和模块来处理数据类型转换。若要将string转换为Uint8Array,你可以使用以下方法:

首先,你需要理解Uint8Array是一个无符号8位整数数组,通常用于表示二进制数据。在ArkTs中,你可以通过遍历字符串的每个字符,将其对应的ASCII码值存储到Uint8Array中来实现转换。

以下是一个示例代码,展示了如何将string转换为Uint8Array

function stringToUint8Array(str: string): Uint8Array {
    let uint8Array = new Uint8Array(str.length);
    for (let i = 0; i < str.length; i++) {
        uint8Array[i] = str.charCodeAt(i);
    }
    return uint8Array;
}

// 使用示例
let myString = "Hello, HarmonyOS!";
let uint8 = stringToUint8Array(myString);
console.log(uint8); // 输出Uint8Array,内容为字符串的ASCII码值

这段代码定义了一个函数stringToUint8Array,它接受一个字符串作为参数,并返回一个包含该字符串字符ASCII码值的Uint8Array

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

回到顶部