鸿蒙Next ArkTS中Uint8Array与String如何相互转换

在鸿蒙Next的ArkTS开发中,如何实现Uint8Array与String之间的相互转换?具体有哪些API或方法可以实现这种转换?能否提供示例代码说明转换过程?

2 回复

在鸿蒙Next ArkTS中,Uint8Array转String用TextDecoder.decode(),String转Uint8Array用TextEncoder.encode()。简单说就是:编码器把字符串变字节,解码器把字节变回字。记得处理中文别乱码哦!

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


在鸿蒙Next的ArkTS中,Uint8ArrayString 的相互转换可通过 TextEncoderTextDecoder 实现。以下是具体方法及代码示例:

1. String 转 Uint8Array

使用 TextEncoder 将字符串编码为字节数组:

let encoder = new TextEncoder();
let str = "Hello, 鸿蒙!";
let uint8Array = encoder.encode(str);
console.log(uint8Array); // 输出 Uint8Array 字节数组

2. Uint8Array 转 String

使用 TextDecoder 将字节数组解码为字符串:

let decoder = new TextDecoder();
let uint8Array = new Uint8Array([72, 101, 108, 108, 111, 44, 32, 229, 174, 162, 232, 146, 178, 33]);
let str = decoder.decode(uint8Array);
console.log(str); // 输出 "Hello, 鸿蒙!"

注意事项:

  • 编码一致性:确保 TextDecoder 使用的编码格式(默认为 UTF-8)与数据源匹配,避免乱码。
  • 非 UTF-8 数据:若字节数组为非 UTF-8 编码(如 GBK),需指定编码类型,例如 new TextDecoder('gbk'),但需注意平台支持情况。
  • 性能:处理大型数据时,可考虑分块编解码以减少内存占用。

以上方法适用于鸿蒙Next的ArkTS环境,简洁高效地完成类型转换。

回到顶部