HarmonyOS 进制转换问题

将16进制字符串转换为Uint8Array的方法是什么?

HarmonyOS
2024-12-23 15:42:32
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
fox280

当前暂不支持16进制字符串直接转换为Uint8Array,可以将16进制字符串转换成字符串进而通过已有方法将其间接转换成Uint8Array,参考示例:

import { promptAction } from '@kit.ArkUI';
import buffer from '@ohos.buffer';
import { util } from '@kit.ArkTS';


@Entry
@Component
struct Index {
  @State message: string = 'Hello World'

  hexToString(hex: string): string {
    let hexString = hex;
    if (hex.indexOf('0x') === 0) {
      hexString = hex.substring(2, hex.length);
    }
    let buf = buffer.from(hex, 'hex');
    return buf.toString();
  }

  stringToHex(input: string): string {
    return Array.from(input)
      .map(char => char.charCodeAt(0).toString(16).padStart(2, '0'))
      .join('');
  }

  build() {
    Row() {
      Column() {
        // 应用退出时会保存当前结果。重新启动后,会显示上一次的保存结果
        Button(`点击`)
          .onClick(() => {

            //字符串转16进制

            // let param = buffer.from("测试一下啊").toString('hex')
            // let param = buffer.from("测试一下啊ewedwefaefa").toString('hex')
            let param = buffer.from("ewedwefaefa").toString('hex')

            console.log(`16进制:${param}`)


            //16进制转字符串
            let str = this.hexToString(param)
            console.log(`str:${str}`)

            let array = stringToArray(str)
            console.log(`Uint8Array:${JSON.stringify(array)}`)

            let arrayStr = arrayToString(array)
            console.log(`Uint8Array转字符串:${JSON.stringify(arrayStr)}`)


            let param2 = buffer.from(arrayStr).toString('hex')
            console.log(`16进制2:${param2}`)


            promptAction.showToast({ message: `方法已执行,请查看控制台日志信息` })
          })
      }.justifyContent(FlexAlign.Center)
      .width("100%")
      .height("100%")
    }
  }
}

function stringToArray(str: string): Uint8Array {
  let textEncoder = new util.TextEncoder();
  return textEncoder.encodeInto(str);
}

function arrayToString(arr: Uint8Array): string {
  let textDecoder = util.TextDecoder.create("utf-8", { ignoreBOM: true });
  let str = textDecoder.decodeWithStream(arr, { stream: false })
  return str;
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
分享
微博
QQ
微信
回复
2024-12-23 18:06:34
相关问题
HarmonyOS 摘要数据转换16进制字符串
688浏览 • 1回复 待解决
HarmonyOS 图片二进制流jpeg格式转换
731浏览 • 1回复 待解决
HarmonyOS 数据转换问题
608浏览 • 1回复 待解决
HarmonyOS进制转16进制
775浏览 • 1回复 待解决
HarmonyOS 时间格式转换问题
968浏览 • 1回复 待解决
HarmonyOS 数据强制转换问题
695浏览 • 1回复 待解决
HarmonyOS json转换模型问题
834浏览 • 1回复 待解决
HarmonyOS ArkTS类型转换问题
2034浏览 • 1回复 待解决
HarmonyOS进制转二进制方法
939浏览 • 1回复 待解决
HarmonyOS网络请求后JSON转换问题
2085浏览 • 1回复 待解决
HarmonyOS px 转 vp 单位转换问题
715浏览 • 1回复 待解决
设计稿单位转换问题
1409浏览 • 1回复 待解决
HarmonyOS ResourceColor 转16进制 string
1082浏览 • 1回复 待解决
HarmonyOS 两个枚举类型之间转换问题
943浏览 • 1回复 待解决
ohos.util.json转换string问题
1005浏览 • 1回复 待解决
HarmonyOS 如何打印出对象16进制标识
699浏览 • 1回复 待解决
HarmonyOS Uint8Array转16进制
838浏览 • 2回复 待解决