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
| String.prototype.encode = function(encoding) {
var result = "";
var s = this.replace(/\r\n/g, "\n");
for(var index = 0; index < s.length; index++) {
var c = s.charCodeAt(index);
if(c < 128) {
result += String.fromCharCode(c);
}
else if((c > 127) && (c < 2048)) {
result += String.fromCharCode((c >> 6) | 192);
result += String.fromCharCode((c & 63) | 128);
}
else {
result += String.fromCharCode((c >> 12) | 224);
result += String.fromCharCode(((c >> 6) & 63) | 128);
result += String.fromCharCode((c & 63) | 128);
}
}
return result;
};
String.prototype.decode = function(encoding) {
var result = "";
var index = 0;
var c = c1 = c2 = 0;
while(index < this.length) {
c = this.charCodeAt(index);
if(c < 128) {
result += String.fromCharCode(c);
index++;
}
else if((c > 191) && (c < 224)) {
c2 = this.charCodeAt(index + 1);
result += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
index += 2;
}
else {
c2 = this.charCodeAt(index + 1);
c3 = this.charCodeAt(index + 2);
result += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
index += 3;
}
}
return result;
}; |
Partager