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