字符串编解码

About 21 min

字符串编解码

说明: 从 API Version 7 开始支持。

导入模块

import util from '@ohos.util' 
1

权限

util.printf

printf(format: string, ...args: Object[]): string

通过式样化字符串对输入的内容按特定格式输出。

  • 参数:

    参数名

    类型

    必填

    说明

    format

    string

    式样化字符串。

    ...args

    Object[]

    待式样化数据。

  • 返回值:

    类型

    说明

    string

    按特定格式式样化后的字符串。

  • 示例:

    var res = util.printf("%s", "hello world!");
    console.log(res);
    
    1
    2

util.getErrorString

getErrorString(errno: number): string

获取系统错误码对应的详细信息。

  • 参数:

    参数名

    类型

    必填

    说明

    errno

    number

    系统发生错误产生的错误码。

  • 返回值:

    类型

    说明

    string

    错误码对应的详细信息。

  • 示例:

    var errnum = 10; // 10:a system error number
    var result = util.getErrorString(errnum);
    console.log("result = " + result);
    
    1
    2
    3

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);
    })
    
    1
    2
    3
    4
    5
    6
    7
    8

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');
    })
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

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})
    
    1

decode

decode(input: Uint8Array, options?:{stream?:false}): string

通过输入参数解码后输出对应文本。

  • 参数:

    参数名

    类型

    必填

    说明

    input

    Uint8Array

    数字。

    options

    Object

    解码相关选项参数。

    表 2 options

    名称

    参数类型

    必填

    说明

    stream

    boolean

    在随后的decode()调用中是否跟随附加数据。如果以块的形式处理数据,则设置为true;如果处理最后的块或数据未分块,则设置为false。默认为false。

  • 返回值:

    类型

    说明

    string

    解码后的数据。

  • 示例:

    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);
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

TextEncoder

属性

名称

参数类型

可读

可写

说明

encoding

string

编码格式,默认值是utf-8。

constructor

constructor()

TextEncoder的构造函数。

  • 示例:

    var textEncoder = new  util.TextEncoder()
    
    1

encode

encode(input?: string): Uint8Array

通过输入参数编码后输出对应文本。

  • 参数:

    参数名

    类型

    必填

    说明

    input

    string

    需要编码的格式。

  • 返回值:

    类型

    说明

    Uint8Array

    返回编码后的文本。

  • 示例:

    var textEncoder = new  util.TextEncoder()
    var result = new Uint8Array(buffer);
    result = textEncoder.encode("\uD800¥¥");
    
    1
    2
    3

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)
    
    1
    2
    3
    4