URIEncodingBitmap.as
1 package com.adobe.net 2 { 3 import flash.utils.ByteArray; 4 5 public class URIEncodingBitmap extends ByteArray 6 { 7 8 9 public function URIEncodingBitmap(charsToEscape:String) 10 { 11 var i:int = 0; 12 var c:int = 0; 13 var enc:int = 0; 14 super(); 15 var data:ByteArray = new ByteArray(); 16 for(i = 0; i < 16; i++) 17 { 18 this.writeByte(0); 19 } 20 data.writeUTFBytes(charsToEscape); 21 data.position = 0; 22 while(Boolean(data.bytesAvailable)) 23 { 24 c = data.readByte(); 25 if(c <= 127) 26 { 27 this.position = c >> 3; 28 enc = this.readByte(); 29 enc |= 1 << (c & 7); 30 this.position = c >> 3; 31 this.writeByte(enc); 32 } 33 } 34 } 35 36 public function ShouldEscape(char:String) : int 37 { 38 var c:int = 0; 39 var mask:int = 0; 40 var data:ByteArray = new ByteArray(); 41 data.writeUTFBytes(char); 42 data.position = 0; 43 c = data.readByte(); 44 if(Boolean(c & 128)) 45 { 46 return 0; 47 } 48 if(c < 31 || c == 127) 49 { 50 return c; 51 } 52 this.position = c >> 3; 53 mask = this.readByte(); 54 if(Boolean(mask & 1 << (c & 7))) 55 { 56 return c; 57 } 58 return 0; 59 } 60 } 61 }