机内码转区内码

First Post:

Last Update:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function 十六进制字符串转十六进制数(v) {
if (typeof v === "string") {
v = parseInt("0x" + v);
}
return v;
}
function 机内码转汉字(机内码) {
机内码 = 十六进制字符串转十六进制数(机内码);
let 国标码 = (机内码 - 0x8080);
let 区位码0x = (国标码 - 0x2020).toString(16);
let 区位码拆s = 区位码0x.split("").map(x => x);
let 区位码s = [], 区 = "";
区位码拆s.forEach((item, index) => {
区 = 区+item;
if((index+1)%2 === 0) {
区位码s.push(区);
区 = "";
}
});
区位码s = 区位码s.map(x => 十六进制字符串转十六进制数(x));
return 区位码s.join("");
}
console.log(机内码转汉字("d3b2"));
// => 5118
console.log(机内码转汉字("bacb"));
// => 2643