TextEncoder,TextDecoder在IE9或低版本浏览器中兼容

微信小程序和低版本浏览器并不支持新的TextEncoder和TextDecoder,但是可以用其他的方式来做到相同的事情。

TextEncoder:

var encoder = new TextEncoder();
      encoder.encode("中文abc");
//result : Uint8Array(9) [228, 184, 173, 230, 150, 135, 97, 98, 99]

兼容写法:

unescape(encodeURIComponent("中文abc")).split("").map(val => val.charCodeAt());
//result : (9) [228, 184, 173, 230, 150, 135, 97, 98, 99]

对比可以发现数组内的内容是一样的,由此可知道TextDecoder的兼容写法。

TextDecoder:

var decoder = new TextDecoder();
      decoder.decode(Uint8Array.from([228, 184, 173, 230, 150, 135, 97, 98, 99]));
//result : 中文abc

兼容写法:

decodeURIComponent(escape(String.fromCharCode(...[228, 184, 173, 230, 150, 135, 97, 98, 99])));
//result : 中文abc

你可能感兴趣的:(TextEncoder,TextDecoder在IE9或低版本浏览器中兼容)