TextEncoder是提供编码能力的,不存在字符串转换TextEncoder相关可参考https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkts/js-apis-util.md\#textencoder可参考一下demo试试function stringToBytes(str: string): Uint8Array { const encoder = new TextEncoder(); return encoder.encode(str); } let str: string = "hello world"; let bytes: Uint8Array = stringToBytes(str); console.log(bytes); // 输出:Uint8Array(11) [ 104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100 ]在 Java 中将字符串转换为字节数组时,结果可能会包含负数,因为 Java 中的字节是有符号的,即它们的范围是从 -128 到 127。而在 TypeScript 中,使用 Uint8Array 类型时,字节数组中的每个元素都是无符号的 8 位整数,范围从 0 到 255,因此会看到的都是正数。如果希望 TypeScript 中的字节数组与 Java 中的结果保持一致,您可以选择使用有符号的字节数组类型 Int8Array。以下是一个示例:function stringToSignedBytes(str: string): Int8Array { const encoder = new TextEncoder(); const uint8Array = encoder.encode(str); return new Int8Array(uint8Array); } let str: string = "hello world"; let signedBytes: Int8Array = stringToSignedBytes(str); console.log(signedBytes); // 输出:Int8Array(11) [ 104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100 ]在这个示例中,stringToSignedBytes 函数将字符串转换为有符号的字节数组 Int8Array,然后返回该数组。这样,就可以得到类似于 Java 中的结果,即字节数组中的每个元素都是有符号的,范围从 -128 到 127。
TextEncoder是提供编码能力的,不存在字符串转换
TextEncoder相关可参考https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkts/js-apis-util.md\#textencoder
可参考一下demo试试
在 Java 中将字符串转换为字节数组时,结果可能会包含负数,因为 Java 中的字节是有符号的,即它们的范围是从 -128 到 127。而在 TypeScript 中,使用 Uint8Array 类型时,字节数组中的每个元素都是无符号的 8 位整数,范围从 0 到 255,因此会看到的都是正数。
如果希望 TypeScript 中的字节数组与 Java 中的结果保持一致,您可以选择使用有符号的字节数组类型 Int8Array。以下是一个示例:
在这个示例中,stringToSignedBytes 函数将字符串转换为有符号的字节数组 Int8Array,然后返回该数组。这样,就可以得到类似于 Java 中的结果,即字节数组中的每个元素都是有符号的,范围从 -128 到 127。