harmony 鸿蒙ArkTS Subsystem Changelog
ArkTS Subsystem Changelog
cl.arkts.1 Encoding Behavior of utf-16le and utf-16be of the util.TextEncoder Module Changed
Access Level
Public API
Reason for Change
When TextEncoder uses the utf-16le or utf-16be encoding format, the encoded data obtained is incorrect.
The utf-16le encoding format uses little-endian. However, the encoded data is in big-endian format.
The utf-16be encoding format uses big-endian. However, the encoded data is in little-endian format.
The data obtained does not comply with the standard definition. This problem needs to be corrected.
Change Impact
This change is a non-compatible change.
Before change:
The utf-16le encoding format uses little-endian. However, the encoded data is in big-endian format.
The utf-16be encoding format uses big-endian. However, the encoded data is in little-endian format.
After change:
The utf-16le encoding format uses little-endian, and the encoded data is in little-endian format.
The utf-16be encoding format uses big-endian, and the encoded data is in big-endian format.
Start API Level
9
Change Since
OpenHarmony SDK 5.0.0.42
Key API/Component Changes
APIs of the util.TextEncoder module:
encodeInto(input?: string): Uint8Array;
encodeIntoUint8Array(input: string, dest: Uint8Array): EncodeIntoUint8ArrayInfo;
Adaptation Guide
No adaptation is required.
Behavior of encodeInto:
import { util } from '@kit.ArkTS';
let encoderUtf16Le = new util.TextEncoder("utf-16le");
let encoderUtf16Be = new util.TextEncoder("utf-16be");
// Before change:
// let u16_le = encoderUtf16Le.encodeInto('abcdefg'); // u16_le: 0,97,0,98,0,99,0,100,0,101,0,102,0,103
// let u16_be = encoderUtf16Be.encodeInto('abcdefg'); // u16_be: 97,0,98,0,99,0,100,0,101,0,102,0,103,0
// After change:
let u16_le = encoderUtf16Le.encodeInto('abcdefg'); // u16_le: 97,0,98,0,99,0,100,0,101,0,102,0,103,0
let u16_be = encoderUtf16Be.encodeInto('abcdefg'); // u16_be: 0,97,0,98,0,99,0,100,0,101,0,102,0,103
Behavior of encodeIntoUint8Array:
import { util } from '@kit.ArkTS';
let encoderUtf16Le = new util.TextEncoder("utf-16le");
let encoderUtf16Be = new util.TextEncoder("utf-16be");
// Before change:
// let dest_le = new Uint8Array(14);
// let dest_be = new Uint8Array(14);
// let res_le = encoderUtf16Le.encodeIntoUint8Array('abcdefg', dest_le); // dest_le: 0,97,0,98,0,99,0,100,0,101,0,102,0,103
// let res_be = encoderUtf16Be.encodeIntoUint8Array('abcdefg', dest_be); // dest_be: 97,0,98,0,99,0,100,0,101,0,102,0,103,0
// After change:
let dest_le = new Uint8Array(14);
let dest_be = new Uint8Array(14);
let res_le = encoderUtf16Le.encodeIntoUint8Array('abcdefg', dest_le); // dest_le: 97,0,98,0,99,0,100,0,101,0,102,0,103,0
let res_be = encoderUtf16Be.encodeIntoUint8Array('abcdefg', dest_be); // dest_be: 0,97,0,98,0,99,0,100,0,101,0,102,0,103
你可能感兴趣的鸿蒙文章
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
7、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦