OSDN Git Service

- add OBJECT_TYPE
[flapp/flapp.git] / string.js
1 (function(global) {
2     var SJISToUTF8 = {};
3     var FlappString = function() {
4         ;
5     };
6
7     FlappString.prototype = {
8         
9     };
10     FlappString.ArrayToString = function(sjisArray) {
11         var strArray = [];
12         for (var i = 0, l = sjisArray.length ; i < l ; i++) {
13             strArray.push(String.fromCharCode(sjisArray[i]));
14         }
15         return strArray.join('');
16     }
17     FlappString.SJISArrayToString = function(sjisArray) {
18         console.log("FlappString::SJISArrayToString");
19         string = FlappString.ArrayToString(sjisArray);
20         if (string in SJISToUTF8) {
21             return string;
22         }
23         SJISToUTF8[string] = string; // dummy string
24         var b = new Blob([sjisArray]);
25         var fr = new FileReader();
26         fr.onloadend = function() {
27             SJISToUTF8[string] = this.result;
28         }
29         ret = fr.readAsText(b, "sjis");
30     };
31     FlappString.SJISToUTF8 = function(string) {
32         if (string in SJISToUTF8) {
33             return SJISToUTF8[string];
34         }
35         return null;
36     };
37     FlappString.SJISArrayMBLength = function(sjis){
38         var len = 0;
39         for (i = 0, l = sjis.length ; i < l ; i++) {
40             if (sjis[i] & 0x80) {
41                 i++;
42             }
43             len ++;
44         }
45         return len;
46     };
47     FlappString.SJISArrayMBExtract = function(sjis){
48         var extractedSJIS = [];
49         for (i = 0, l = sjis.length ; i < l ; i++) {
50             if (sjis[i] & 0x80) {
51                 extractedSJIS.join([sjis[i++], sjis[i]]);
52             } else {
53                 extractedSJIS.join([sjis[i]]);
54             }
55         }
56         return extractedSJIS;
57     }
58     global.FlappString = FlappString;
59 })(this);