1# ArkTS子系统变更说明
2
3## cl.arkts.1 util.TextDecoder模块ignoreBOM功能行为变更
4
5**访问级别**
6
7公开接口
8
9**变更原因**
10
11util.TextDecoder模块ignoreBOM参数未使能,无法对存在BOM标记的数据进行正常解析。
12
13**变更影响**
14
15此版本兼容之前的应用开发,不需要适配,后续可调用新增替代接口支持ignoreBOM的功能。
16
17**起始API Level**
18
199
20
21**变更发生版本**
22
23从OpenHarmony SDK 5.0.0.35 版本开始。
24
25**变更的接口/组件**
26
27为确保版本之间的兼容性,对util.TextDecoder模块ignoreBOM使能的相关接口进行废弃,并新增对应方法。
28|  类名 | 废弃接口  | 新增替代接口  |
29| ------------ | ------------  | ------------ |
30| util.TextDecoder | decodeWithStream(input: Uint8Array, options?: DecodeWithStreamOptions): string;  | decodeToString(input: Uint8Array, options?: DecodeWithStreamOptions): string;  |
31
32**适配指导**
33
34新增接口与废弃接口功能保持一致,主要是对于接受的数据进行解码,新增了ignoreBOM功能。
35
36```
37import { util } from '@kit.ArkTS';
38
39let textDecoderOptions: util.TextDecoderOptions = {
40  fatal: false,
41  ignoreBOM : true
42}
43let decodeToStringOptions: util.DecodeToStringOptions = {
44  stream: false
45}
46let textDecoder = util.TextDecoder.create('utf-8', textDecoderOptions);
47let result = new Uint8Array(6);
48result[0] = 0xEF;
49result[1] = 0xBB;
50result[2] = 0xBF;
51result[3] = 0x61;
52result[4] = 0x62;
53result[5] = 0x63;
54
55// 废弃接口decodeWithStream表现:
56// let decodeWithStreamOptions: util.DecodeWithStreamOptions = {
57//   stream: false
58// }
59// let retStr = textDecoder.decodeWithStream(result , decodeWithStreamOptions);
60// console.info("retStr length: " + retStr.length); // retStr length: 4
61// console.info("retStr value: " + retStr); // retStr value: abc
62
63// 新增接口decodeToString表现:
64let retStr = textDecoder.decodeToString(result , decodeToStringOptions);
65console.info("retStr length: " + retStr.length); // retStr length: 3
66console.info("retStr value: " + retStr); // retStr value: abc
67```
68
69## cl.arkts.2 Base64Helper、StringDecoder模块部分接口参数异常错误码由undefined变更为401
70
71**访问级别**
72
73公开接口
74
75**变更原因**
76
77接口参数异常错误码规格为401,但实际为抛出错误码为undefined,开发者无法精确找到问题原因。
78
79**变更影响**
80
81不兼容变更,参数异常的错误码由undefined变更为401。
82
83**起始API Level**
84
85|  类名 | 接口 |  起始API Level  |
86| ----- | ---- | -------------- |
87| util.Base64Helper | encodeToStringSync(src: Uint8Array, options?: Type): string;  | 9  |
88| util.Base64Helper | encode(src: Uint8Array, options?: Type): Promise<Uint8Array>;  | 9  |
89| util.Base64Helper | encodeSync(src: Uint8Array, options?: Type): Uint8Array;  | 9  |
90| util.Base64Helper | encodeToString(src: Uint8Array, options?: Type): Promise<string>;  | 9  |
91| util.Base64Helper | decode(src: Uint8Array \| string, options?: Type): Promise<Uint8Array>;  | 9  |
92| util.StringDecoder | constructor(encoding?: string);  | 12  |
93| util.StringDecoder | write(chunk: string \| Uint8Array): string;  | 12  |
94| util.StringDecoder | end(chunk?: string \| Uint8Array): string;  | 12  |
95
96**变更发生版本**
97
98从OpenHarmony SDK 5.0.0.35 版本开始。
99
100**变更的接口/组件**
101
102|  类名 | 接口  | 变更  |
103| ------------ | ------------  | ------------ |
104| util.Base64Helper | encodeToStringSync(src: Uint8Array, options?: Type): string;  | 参数异常由undefined变更为401。  |
105| util.Base64Helper | encode(src: Uint8Array, options?: Type): Promise<Uint8Array>;  | 参数异常由undefined变更为401。  |
106| util.Base64Helper | encodeSync(src: Uint8Array, options?: Type): Uint8Array;  | 参数异常由undefined变更为401。  |
107| util.Base64Helper | encodeToString(src: Uint8Array, options?: Type): Promise<string>;  | 参数异常由undefined变更为401。  |
108| util.Base64Helper | decode(src: Uint8Array \| string, options?: Type): Promise<Uint8Array>;  | 参数异常由undefined变更为401。  |
109| util.StringDecoder | constructor(encoding?: string);  | 参数异常由undefined变更为401。  |
110| util.StringDecoder | write(chunk: string \| Uint8Array): string;  | 参数异常由undefined变更为401。  |
111| util.StringDecoder | end(chunk?: string \| Uint8Array): string;  | 参数异常由undefined变更为401。  |
112
113**适配指导**
114
115基于以上变更错误码的接口,开发者若存在对相关接口参数异常的错误码判断为undefined的情况,需要整改为判断401。
116