javascript字符串转换成utf-8编码方式有:1、支持window.TextEncoder()的情况,语法“TextEncoder('utf8');”;2、利用encodeURI的编码进行替换,语法“encodeURI(字符串)”。
实践中碰到了一个大问题,在 javascript 中,可能有一些中文字符串,我们想将其进行二进制流编码的时候,需要将其转换为 utf8 的编码。
也就是说,输入的是一个字符串:'呆滞的慢板今天挣了100块钱'。
输出的是一个字节序列:
又或者是这一个单字节的字符串:
经过不懈的折腾,终于搞明白了,有两种解决方案:
1. 支持 window.TextEncoder() 的情况
这种返回的是一个整数数组。
2. 利用 encodeURI 的编码进行替换
原理是,如果使用 encodeURI(str),其中如果碰到中文字符之类的,就会按照 utf8 编码之后变成 %E5%91 这个样子,我们利用这个,完了之后再将 % 替换成 \x,就得到了单个字节的串。
3. 综合使用
于是,我们综合来定义一个兼容的方案: