nv-buf-utf16 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +37 -0
- package/package.json +11 -0
package/index.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
const s2lebuf = (s) => {
|
|
2
|
+
var buf = new Uint16Array(s.length);
|
|
3
|
+
for (let i = 0; i < s.length; i++) {
|
|
4
|
+
buf[i] = s.charCodeAt(i); // 小端序:低字节在前,高字节在后,但 Uint16Array 直接存码点即可
|
|
5
|
+
}
|
|
6
|
+
return buf;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
const s2bebuf = (s) => {
|
|
10
|
+
var buf = new Uint16Array(s.length);
|
|
11
|
+
for (let i = 0; i < s.length; i++) {
|
|
12
|
+
const code = s.charCodeAt(i);
|
|
13
|
+
// 大端序:高字节在前,低字节在后
|
|
14
|
+
buf[i] = ((code & 0xFF) << 8) | ((code >> 8) & 0xFF);
|
|
15
|
+
}
|
|
16
|
+
return buf;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const lebuf2s = (u16a) => {
|
|
20
|
+
// 小端序转字符串:Uint16Array 直接读码点即可
|
|
21
|
+
return String.fromCharCode.apply(null, u16a);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const bebuf2s = (u16a) => {
|
|
25
|
+
// 大端序转字符串:需要交换高低字节
|
|
26
|
+
const codes = [];
|
|
27
|
+
for (let i = 0; i < u16a.length; i++) {
|
|
28
|
+
const code = u16a[i];
|
|
29
|
+
codes.push(((code & 0xFF) << 8) | ((code >> 8) & 0xFF));
|
|
30
|
+
}
|
|
31
|
+
return String.fromCharCode.apply(null, codes);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
module.exports = {
|
|
35
|
+
s2lebuf, s2bebuf,
|
|
36
|
+
lebuf2s, bebuf2s,
|
|
37
|
+
};
|