sjis.js
1.79 KB
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
var consts = require('../constants');
var SJIS_cls = [
1,1,1,1,1,1,1,1, // 00 - 07
1,1,1,1,1,1,0,0, // 08 - 0f
1,1,1,1,1,1,1,1, // 10 - 17
1,1,1,0,1,1,1,1, // 18 - 1f
1,1,1,1,1,1,1,1, // 20 - 27
1,1,1,1,1,1,1,1, // 28 - 2f
1,1,1,1,1,1,1,1, // 30 - 37
1,1,1,1,1,1,1,1, // 38 - 3f
2,2,2,2,2,2,2,2, // 40 - 47
2,2,2,2,2,2,2,2, // 48 - 4f
2,2,2,2,2,2,2,2, // 50 - 57
2,2,2,2,2,2,2,2, // 58 - 5f
2,2,2,2,2,2,2,2, // 60 - 67
2,2,2,2,2,2,2,2, // 68 - 6f
2,2,2,2,2,2,2,2, // 70 - 77
2,2,2,2,2,2,2,1, // 78 - 7f
3,3,3,3,3,3,3,3, // 80 - 87
3,3,3,3,3,3,3,3, // 88 - 8f
3,3,3,3,3,3,3,3, // 90 - 97
3,3,3,3,3,3,3,3, // 98 - 9f
// 0xa0 is illegal in sjis encoding, but some pages does
// contain such byte. We need to be more consts.error forgiven.
2,2,2,2,2,2,2,2, // a0 - a7
2,2,2,2,2,2,2,2, // a8 - af
2,2,2,2,2,2,2,2, // b0 - b7
2,2,2,2,2,2,2,2, // b8 - bf
2,2,2,2,2,2,2,2, // c0 - c7
2,2,2,2,2,2,2,2, // c8 - cf
2,2,2,2,2,2,2,2, // d0 - d7
2,2,2,2,2,2,2,2, // d8 - df
3,3,3,3,3,3,3,3, // e0 - e7
3,3,3,3,3,4,4,4, // e8 - ef
3,3,3,3,3,3,3,3, // f0 - f7
3,3,3,3,3,0,0,0 // f8 - ff
];
var SJIS_st = [
consts.error,consts.start,consts.start, 3,consts.error,consts.error,consts.error,consts.error, //00-07
consts.error,consts.error,consts.error,consts.error,consts.itsMe,consts.itsMe,consts.itsMe,consts.itsMe, //08-0f
consts.itsMe,consts.itsMe,consts.error,consts.error,consts.start,consts.start,consts.start,consts.start //10-17
];
var SJISCharLenTable = [0, 1, 1, 2, 0, 0];
module.exports = {
"classTable" : SJIS_cls,
"classFactor" : 6,
"stateTable" : SJIS_st,
"charLenTable" : SJISCharLenTable,
"name" : "Shift_JIS"
};