Skip to content

Commit f195db4

Browse files
committed
decode
1 parent 0204a0c commit f195db4

File tree

1 file changed

+24
-12
lines changed

1 file changed

+24
-12
lines changed

basehangul.js

+24-12
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,29 @@ function encode(bytearray) {
1515
return result.join('');
1616
}
1717

18-
var sample = 'This is an encoded string'.split('').map(function (character) { return character.charCodeAt(); });
19-
console.log(encode(sample));
20-
21-
var ex1 = [49, 50, 51, 97, 98];
22-
var ex2 = [49];
23-
var ex3 = [49, 50, 51, 100];
24-
25-
console.log(encode(ex1));
26-
console.log(encode(ex2));
27-
console.log(encode(ex3));
28-
2918
function decode(basehangulString) {
30-
// TODO
19+
var baseData = basehangulString.split('').map(function (character) { return ksx1001_1028.indexOf(character); });
20+
var len = baseData.length;
21+
var a, b, c, d, result = [];
22+
for (var i = 0; i < len; ++i) {
23+
a = baseData[i]; b = baseData[++i]; c = baseData[++i]; d = baseData[++i];
24+
result.push((a >> 2) & 255);
25+
if (b === -1) break;
26+
result.push((a & 3) << 6 | b >> 4);
27+
if (b === -1) break;
28+
result.push((b & 15) << 4 | c >> 6);
29+
if (c === -1) break;
30+
result.push((c & 63) << 2 | (d > 1023 ? d & 3: d >> 8));
31+
if (d === -1 || d > 1023) break;
32+
result.push(d & 255);
33+
}
34+
return result;
3135
}
36+
37+
console.log(decode(encode([49, 50, 51, 97, 98])));
38+
console.log(decode(encode([49])));
39+
console.log(decode(encode([49, 50, 51, 100])));
40+
41+
console.log(decode('넥라똔먈늴멥갯놓궂뗐밸뮤뉴뗐뀄굡덜멂똑뚤').map(function (byte) {
42+
return String.fromCharCode(byte);
43+
}).join(''));

0 commit comments

Comments
 (0)