https://developers.weixin.qq.com/community/develop/doc/000ca85023ce78c8484e0d1d256400?highLine=TextEncoder
TextEncoder在真机上提供吗?业务代码中用到了new TextEncoder() Stable 1.06.2301160 (上一个版本) 开发工具和真机上 都提供了 TextEncoder/TextDecoder 能正常使用 Stable 1.06.2303060 (最新版本) 开发工具上提供了 但是真机上这个方法没了 导致代码报错走不下去 请问下稳定版最新版开发工具是有什么变动导致这个方法 new TextEncoder() 丢失了吗
06-25可以替换为https://github.com/inexorabletash/text-encoding const TextEncoderLib = require('./lib/encoding.js'); new TextEncoderLib.TextEncoder(); new TextEncoderLib.TextDecoder();
微信小程序不支持TextDecoder// 将十六进制字符串转中文:hex为十六进制字符串 encoding为编码格式,默认是utf-8 export function hexToStr(hex,encoding) { // 去掉字符串首尾空格 let trimedStr = hex.trim() // 判断trimedStr前两个字符是否为0x,如果是则截取从第三个字符及后面所有,否则返回全部字符 let rawStr = trimedStr.substr(0, 2).toLowerCase() === "0x" ? trimedStr.substr(2) : trimedStr // 得到rawStr的长度 let len = rawStr.length // 如果长度不能被2整除,那么传入的十六进制值有误,返回空字符 if (len % 2 !== 0) { return "" } let curCharCode // 接收每次循环得到的字符 let resultStr = [] // 存转换后的十进制值数组 for (let i = 0; i < len; i = i + 2) { curCharCode = parseInt(rawStr.substr(i, 2), 16) resultStr.push(curCharCode) } // encoding为空时默认为utf-8 let bytesView = new Uint8Array(resultStr) // 8 位无符号整数值的类型化数组 // TextEncoder和TextDecoder对字符串和字节流互转 let str = new TextDecoder(encoding).decode(bytesView) return str }
06-25