mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-29 05:42:20 +00:00
docs(arraybuffer): edit ab2str
This commit is contained in:
parent
24e9149543
commit
7680ea586a
@ -447,15 +447,17 @@ Float64Array.BYTES_PER_ELEMENT // 8
|
|||||||
|
|
||||||
### ArrayBuffer与字符串的互相转换
|
### ArrayBuffer与字符串的互相转换
|
||||||
|
|
||||||
`ArrayBuffer`转为字符串,或者字符串转为`ArrayBuffer`,有一个前提,即字符串的编码方法是确定的。假定字符串采用UTF-16编码(JavaScript的内部编码方式),可以自己编写转换函数。
|
`ArrayBuffer`转为字符串,或者字符串转为`ArrayBuffer`,有一个前提,即字符串的编码方法是确定的。假定字符串采用 UTF-16 编码(JavaScript 的内部编码方式),可以自己编写转换函数。
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
// ArrayBuffer转为字符串,参数为ArrayBuffer对象
|
// ArrayBuffer 转为字符串,参数为 ArrayBuffer 对象
|
||||||
function ab2str(buf) {
|
function ab2str(buf) {
|
||||||
|
// 注意,如果是大型二进制数组,为了避免溢出,
|
||||||
|
// 必须一个一个字符地转
|
||||||
return String.fromCharCode.apply(null, new Uint16Array(buf));
|
return String.fromCharCode.apply(null, new Uint16Array(buf));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 字符串转为ArrayBuffer对象,参数为字符串
|
// 字符串转为 ArrayBuffer 对象,参数为字符串
|
||||||
function str2ab(str) {
|
function str2ab(str) {
|
||||||
const buf = new ArrayBuffer(str.length * 2); // 每个字符占用2个字节
|
const buf = new ArrayBuffer(str.length * 2); // 每个字符占用2个字节
|
||||||
const bufView = new Uint16Array(buf);
|
const bufView = new Uint16Array(buf);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user