# 字符串编解码
> **说明:**
>从 API Version 7 开始支持。
## 导入模块
```
import util from '@ohos.util'
```
## 权限
无
## util.printf
printf\(format: string, ...args: Object\[\]\): string
通过式样化字符串对输入的内容按特定格式输出。
- 参数:
参数名
|
类型
|
必填
|
说明
|
format
|
string
|
是
|
式样化字符串。
|
...args
|
Object[]
|
否
|
待式样化数据。
|
- 返回值:
类型
|
说明
|
string
|
按特定格式式样化后的字符串。
|
- 示例:
```
var res = util.printf("%s", "hello world!");
console.log(res);
```
## util.getErrorString
getErrorString\(errno: number\): string
获取系统错误码对应的详细信息。
- 参数:
参数名
|
类型
|
必填
|
说明
|
errno
|
number
|
是
|
系统发生错误产生的错误码。
|
- 返回值:
- 示例:
```
var errnum = 10; // 10:a system error number
var result = util.getErrorString(errnum);
console.log("result = " + result);
```
## util.callbackWrapper
callbackWrapper\(original: Function\): \(err: Object, value: Object\)=\>void
对异步函数进行回调化处理,回调中第一个参数将是拒绝原因(如果 Promise 已解决,则为 null),第二个参数将是已解决的值。
- 参数:
参数名
|
类型
|
必填
|
说明
|
original
|
Function
|
是
|
异步函数。
|
- 返回值:
类型
|
说明
|
Function
|
返回一个第一个参数是拒绝原因(如果 Promise 已解决,则为 null),第二个参数是已解决的回调函数。
|
- 示例:
```
async function promiseFn() {
return Promise.reject('value');
}
var cb = util.callbackWrapper(promiseFn);
cb((err, ret) => {
expect(err).strictEqual('value');
expect(ret).strictEqual(undefined);
})
```
## util.promiseWrapper
promiseWrapper\(original: \(err: Object, value: Object\) =\> void\): Object
对异步函数处理并返回一个promise的版本。
- 参数:
参数名
|
类型
|
必填
|
说明
|
original
|
Function
|
是
|
异步函数。
|
- 返回值:
类型
|
说明
|
Function
|
采用遵循常见的错误优先的回调风格的函数(也就是将 (err, value) => ... 回调作为最后一个参数),并返回一个返回 promise 的版本。
|
- 示例:
```
function aysnFun(str1, str2, callback) {
if (typeof str1 === 'string' && typeof str1 === 'string') {
callback(null, str1 + str2);
} else {
callback('type err');
}
}
let newPromiseObj = util.promiseWrapper(aysnFun)("Hello", 'World');
newPromiseObj.then(res => {
expect(res).strictEqual('HelloWorld');
})
```
## TextDecoder
### 属性
名称
|
参数类型
|
可读
|
可写
|
说明
|
encoding
|
string
|
是
|
否
|
编码格式。
|
fatal
|
boolean
|
是
|
否
|
是否显示致命错误。
|
ignoreBOM
|
boolean
|
是
|
否
|
是否忽略BOM(byte order marker)标记,默认值是false。
|
### constructor
constructor\(encoding?: string, options?: \{ fatal?: boolean; ignoreBOM?: boolean \},\)
TextDecoder的构造函数。
- 参数:
参数名
|
类型
|
必填
|
说明
|
encoding
|
string
|
否
|
编码格式。
|
options
|
Object
|
否
|
编码相关选项参数,存在两个属性fatal和ignoreBOM。
|
**表 1** options
名称
|
参数类型
|
必填
|
说明
|
fatal
|
boolean
|
否
|
是否显示致命错误。
|
ignoreBOM
|
boolean
|
否
|
是否忽略BOM标记。
|
- 示例:
```
var textDecoder = util.TextDecoder("utf-8",{ignoreBOM:true})
```
### decode
decode\(input: Uint8Array, options?:\{stream?:false\}\): string
通过输入参数解码后输出对应文本。
- 参数:
参数名
|
类型
|
必填
|
说明
|
input
|
Uint8Array
|
是
|
数字。
|
options
|
Object
|
否
|
解码相关选项参数。
|
**表 2** options
名称
|
参数类型
|
必填
|
说明
|
stream
|
boolean
|
否
|
在随后的decode()调用中是否跟随附加数据。如果以块的形式处理数据,则设置为true;如果处理最后的块或数据未分块,则设置为false。默认为false。
|
- 返回值:
- 示例:
```
var textDecoder = util.TextDecoder("utf-8",{ignoreBOM:true});
var result = new Uint8Array(6);
result[0] = 0xEF;
result[1] = 0xBB;
result[2] = 0xBF;
result[3] = 0x61;
result[4] = 0x62;
result[5] = 0x63;
console.log("input num:");
for(var j= 0; j < 6; j++) {
console.log(result[j]);
}
var retStr = textDecoder.decode( result , {stream:false});
console.log("retStr = " + retStr);
```
## TextEncoder
### 属性
名称
|
参数类型
|
可读
|
可写
|
说明
|
encoding
|
string
|
是
|
否
|
编码格式,默认值是utf-8。
|
### constructor
constructor\(\)
TextEncoder的构造函数。
- 示例:
```
var textEncoder = new util.TextEncoder()
```
### encode
encode\(input?: string\): Uint8Array
通过输入参数编码后输出对应文本。
- 参数:
参数名
|
类型
|
必填
|
说明
|
input
|
string
|
是
|
需要编码的格式。
|
- 返回值:
类型
|
说明
|
Uint8Array
|
返回编码后的文本。
|
- 示例:
```
var textEncoder = new util.TextEncoder()
var result = new Uint8Array(buffer);
result = textEncoder.encode("\uD800¥¥");
```
### encodeInto
encodeInto\(input: string, dest: Uint8Array,\):\{ read: number; written: number \}
放置生成的UTF-8编码文本。
- 参数:
参数名
|
类型
|
必填
|
说明
|
input
|
string
|
是
|
需要编码的格式。
|
dest
|
Uint8Array
|
是
|
Uint8Array对象实例,用于将生成的UTF-8编码文本放入其中
|
- 返回值:
类型
|
说明
|
Uint8Array
|
返回编码后的文本。
|
- 示例:
```
var that = new util.TextEncoder()
var buffer = new ArrayBuffer(4)
this.dest = new Uint8Array(buffer)
var result = that.encodeInto("abcd", this.dest)
```