文档管理中心
|

HarmonyOS 5

HarmonyOS NEXT 中如何将String转成ArrayBuffer

已解决
请问str怎么转成ArrayBuffer方法?
点赞
收藏
回复
1
分享
举报
浏览321 发布于2025-08-06 01:09广东
全部评论
最多点赞
最新发布
最早发布
|
采纳答复

您好,具体解决方案如下:

  • 将string字符串转换为ArrayBuffer,可借助ArkTS当中的util.TextEncoder,代码案例参考如下:

    收起
    自动换行
    深色代码主题
    复制
    encoderStringToBuffer(str: string): ArrayBuffer {
      const encoder = util.TextEncoder.create('UTF-8')
      const uint8Array = encoder.encodeInto(str)
      return uint8Array.buffer
    }
    
  • 将ArrayBuffer解码为string字符串,可借助ArkTS当中的util.TextDecoder,代码案例参考如下:

    收起
    自动换行
    深色代码主题
    复制
    bufferToString(buffer: ArrayBuffer): string {
      let decoder = util.TextDecoder.create('UTF-8')
      let uint8Array = new Uint8Array(buffer)
      return decoder.decodeToString(uint8Array)
    }
    

完整的测试案例代码如下:

收起
自动换行
深色代码主题
复制
import { util } from '@kit.ArkTS';

@Entry
@Component
struct Index {
  @State message: string = 'Hello World! 你好'
  
  encoderStringToBuffer(str: string): ArrayBuffer {
    const encoder = util.TextEncoder.create('UTF-8')
    const uint8Array = encoder.encodeInto(str)
    return uint8Array.buffer
  }

  bufferToString(buffer: ArrayBuffer): string {
    let decoder = util.TextDecoder.create('UTF-8')
    let uint8Array = new Uint8Array(buffer)
    return decoder.decodeToString(uint8Array)
  }

  build() {
    Column({space: 20}) {
      Button("encoderStringToBuffer")
        .fontSize(20)
        .fontWeight(FontWeight.Bold)
        .onClick(() => {          let buffer = this.encoderStringToBuffer(this.message)
          console.info(new Int8Array(buffer).join(","))
          console.info(this.bufferToString(buffer))
        })
    }
    .height('100%')
    .width('100%')
    .justifyContent(FlexAlign.Center)
  }
}
展开全部
1楼回复于2025-08-06 01:27 来自广东
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要提问题

了解社区公约,与您携手共创和谐专业的开发者社区。