HarmonyOS 鸿蒙Next 数据类型转换 unit8Array/base64 转 16进制

HarmonyOS 鸿蒙Next 数据类型转换 unit8Array/base64 转 16进制 我想咨询一下uint8Array的data转成16进制的代码方法以及base64串转成16进制的方法,谢谢

2 回复

转换方式有多种,可以编写工具类自行实现,也可以参考以下demo

import { util } from '@kit.ArkTS';

//uint8Array转hex
let buffer = new Uint8Array([4, 8, 12, 16]);
function buf2hex(buffer: Uint8Array) {
  return [...buffer]
    .map(x => x.toString(16).padStart(2, '0'))
    .join('');
}

console.log(buf2hex(buffer));

//base64转hex,先转为uint8Array,再转hex
let that = new util.Base64Helper();
let baseStr = 'TWFuaXNkaXN0aW5ndWlzaGVkbm90b25seWJ5aGlzcmVhc29uYnV0Ynl0aGlz';
let result = that.decodeSync(baseStr, util.Type.MIME);
console.log(buf2hex(result));

更多关于HarmonyOS 鸿蒙Next 数据类型转换 unit8Array/base64 转 16进制的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)系统中进行数据类型转换,特别是将uint8Array或Base64编码的数据转换为16进制字符串,可以通过以下步骤实现,这里不涉及Java或C语言的具体代码实现,而是提供一个通用的转换思路:

  1. Base64到uint8Array

    • 首先,将Base64编码的字符串解码为原始的字节数组(即uint8Array)。鸿蒙系统通常提供有Base64解码的API,可以直接调用。
  2. uint8Array到16进制

    • 遍历解码后的字节数组,将每个字节转换为两位的16进制表示。
    • 可以使用字符串拼接的方式,将每个字节转换为"%02X"格式的字符串(其中%02X是C语言风格的格式化字符串,但在鸿蒙的某些API或语言中可能有等效的实现)。

示例伪代码流程(非具体语言实现):

function base64ToHex(base64Str):
    uint8Array = decodeBase64(base64Str)
    hexStr = ""
    for byte in uint8Array:
        hexStr += formatByteToHex(byte)
    return hexStr

function formatByteToHex(byte):
    // 假设有一个函数可以将单个字节格式化为两位16进制字符串
    return byte.toHexString()  // 伪代码,具体实现依赖于鸿蒙提供的API
``

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