HarmonyOS 鸿蒙Next ArkTS中 string和Uint8Array如何互转

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

HarmonyOS 鸿蒙Next ArkTS中 string和Uint8Array如何互转 一段字符串 let str:string = '123456'; 如何根据str转成Uint8Array对象?另外,如何根据Uint8Array对象生成string字符串?望回答,感谢。

3 回复
static stringToUint8Array(str: string): Uint8Array {
  if (!str) {
    logger.error('stringToUint8Array', 'params error');
    throw new Error('stringToUint8Array, params error');
  }
  let arr: number[] = [];
  for (let i = 0; i < str.length; ++i) {
    arr.push(str.charCodeAt(i));
  }
  return new Uint8Array(arr);
}

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


把string转成Uint8Array,代码如下:

public static stringToUint8Array(str: string): Uint8Array {
    const utf8 = unescape(encodeURIComponent(str));
    const arr = new Uint8Array(utf8.length);
    for (let i = 0; i < utf8.length; i++) {
        arr[i] = utf8.charCodeAt(i);
    }
    return arr;
}

uint8Array转成string一行代码就能解决:

let result=util.TextDecoder.create("utf-8", {ignoreBOM: true}).decodeWithStream(uint8Array)

在HarmonyOS鸿蒙Next ArkTS中,stringUint8Array 的互转可以通过以下方式实现:

string 转 Uint8Array

要将 string 转换为 Uint8Array,可以使用 TextEncoderTextEncoder 可以将字符串编码为 UTF-8 字节序列,并存储在一个 Uint8Array 中。

示例代码:

let str = "Hello, HarmonyOS!";
let encoder = new TextEncoder();
let uint8Array = encoder.encode(str);

Uint8Array 转 string

要将 Uint8Array 转换为 string,可以使用 TextDecoderTextDecoder 可以将 UTF-8 字节序列解码为字符串。

示例代码:

let uint8Array = new Uint8Array([72, 101, 108, 108, 111, 44, 32, 72, 97, 114, 109, 111, 110, 121, 79, 83, 33]);
let decoder = new TextDecoder();
let str = decoder.decode(uint8Array);

通过上述方法,你可以在ArkTS中轻松实现 stringUint8Array 的互转。

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

回到顶部