1# ArkTS Subsystem Changelog 2 3## cl.arkts.1 Encoding Behavior of utf-16le and utf-16be of the util.TextEncoder Module Changed 4 5**Access Level** 6 7Public API 8 9**Reason for Change** 10 11When TextEncoder uses the utf-16le or utf-16be encoding format, the encoded data obtained is incorrect. 12 13The utf-16le encoding format uses little-endian. However, the encoded data is in big-endian format. 14 15The utf-16be encoding format uses big-endian. However, the encoded data is in little-endian format. 16 17The data obtained does not comply with the standard definition. This problem needs to be corrected. 18 19**Change Impact** 20 21This change is a non-compatible change. 22 23Before change: 24 25The utf-16le encoding format uses little-endian. However, the encoded data is in big-endian format. 26 27The utf-16be encoding format uses big-endian. However, the encoded data is in little-endian format. 28 29After change: 30 31The utf-16le encoding format uses little-endian, and the encoded data is in little-endian format. 32 33The utf-16be encoding format uses big-endian, and the encoded data is in big-endian format. 34 35**Start API Level** 36 379 38 39**Change Since** 40 41OpenHarmony SDK 5.0.0.42 42 43**Key API/Component Changes** 44 45APIs of the util.TextEncoder module: 46 47encodeInto(input?: string): Uint8Array; 48 49encodeIntoUint8Array(input: string, dest: Uint8Array): EncodeIntoUint8ArrayInfo; 50 51**Adaptation Guide** 52 53No adaptation is required. 54 55Behavior of **encodeInto**: 56 57```ts 58import { util } from '@kit.ArkTS'; 59 60let encoderUtf16Le = new util.TextEncoder("utf-16le"); 61let encoderUtf16Be = new util.TextEncoder("utf-16be"); 62 63// Before change: 64// let u16_le = encoderUtf16Le.encodeInto('abcdefg'); // u16_le: 0,97,0,98,0,99,0,100,0,101,0,102,0,103 65// let u16_be = encoderUtf16Be.encodeInto('abcdefg'); // u16_be: 97,0,98,0,99,0,100,0,101,0,102,0,103,0 66 67 68// After change: 69let u16_le = encoderUtf16Le.encodeInto('abcdefg'); // u16_le: 97,0,98,0,99,0,100,0,101,0,102,0,103,0 70let u16_be = encoderUtf16Be.encodeInto('abcdefg'); // u16_be: 0,97,0,98,0,99,0,100,0,101,0,102,0,103 71``` 72 73Behavior of **encodeIntoUint8Array**: 74 75```ts 76import { util } from '@kit.ArkTS'; 77 78let encoderUtf16Le = new util.TextEncoder("utf-16le"); 79let encoderUtf16Be = new util.TextEncoder("utf-16be"); 80 81// Before change: 82// let dest_le = new Uint8Array(14); 83// let dest_be = new Uint8Array(14); 84// let res_le = encoderUtf16Le.encodeIntoUint8Array('abcdefg', dest_le); // dest_le: 0,97,0,98,0,99,0,100,0,101,0,102,0,103 85// let res_be = encoderUtf16Be.encodeIntoUint8Array('abcdefg', dest_be); // dest_be: 97,0,98,0,99,0,100,0,101,0,102,0,103,0 86 87// After change: 88let dest_le = new Uint8Array(14); 89let dest_be = new Uint8Array(14); 90let res_le = encoderUtf16Le.encodeIntoUint8Array('abcdefg', dest_le); // dest_le: 97,0,98,0,99,0,100,0,101,0,102,0,103,0 91let res_be = encoderUtf16Be.encodeIntoUint8Array('abcdefg', dest_be); // dest_be: 0,97,0,98,0,99,0,100,0,101,0,102,0,103 92``` 93