微信小程序TextDecoder兼容方案和polyfill体积优化方案

由于业务需求需要用到TextDecoder完成gbk解码,在网页端和小程序开发者工具运行是没有问题的,但在小程序手机真机运行报错,通过资料查询了解到是微信小程序真机存在兼容问题。报错如下:

MiniProgramError
TextDecoder is not defined
ReferenceError: TextDecoder is not defined

目前主流的两种解决方案:

解决方案1(不支持gbk)

使用兼容写法

//TextEncoder
unescape(encodeURIComponent(inputString)).split("").map(val => val.charCodeAt());
//TextDecoder
decodeURIComponent(escape(String.fromCharCode(...['arraybuffer'])));

但经过测试,以上方法不适合gbk,所以得看第二个方案

解决方案2

引入polyfill,即text-decoding库

npm install text-decoding
const TextDecoder = require('text-encoding');
const decoder = new TextDecoder('gbk');

引入后即可正常使用。但引入后小程序总包体积直接多了500多kb,十分夸张。于是在网上查看相关的解决方案,没有看到有人提出体积优化的解决方案,遂自己研究了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值