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