1 5 package com.teamkonzept.lib; 6 7 10 public class TKJavaScriptConverter extends TKConverter { 11 12 public final static String CONV_ID = "JS"; 13 public final static String CONV_NAME = "JAVASCRIPT"; 14 15 public String getName() 16 { 17 return CONV_NAME; 18 } 19 20 public int getMaxBytesPerChar() 21 { 22 return 4; 23 } 24 25 public int minCharSize(int byteCount) 26 { 27 return byteCount; 28 } 29 30 public int charsToBytes(char src[], byte dst[], int srcBegin, int length, int dstBegin) 31 { 32 String back = encodeJavaScript(src, srcBegin, length); 33 back.getBytes(0, back.length(), dst, dstBegin); 34 return back.length(); 35 } 36 37 public int bytesToChars(byte src[], char dst[], int srcBegin, int length, int dstBegin) 38 { 39 String srcIn = new String (src); 40 String back = encodeJavaScript(srcIn.toCharArray(), srcBegin, length); 41 back.getChars(0, back.length(), dst, dstBegin); 42 return back.length(); 43 } 44 45 public static String encodeJavaScript(char[] in, int start, int length) 46 { 47 if (in == null) 48 return null; 49 50 StringBuffer buf = new StringBuffer (); 51 int end = start+length; 52 for (int i = start; i < end; i++) 53 { 54 char ch = in[i]; 55 switch ( ch) 56 { 57 case '\'': 58 case '\"': 59 case '\\': 60 int eins = conv(ch/16); 61 int zwei = conv(ch%16); 62 buf.append("\\x" + new Character ((char)eins) + new Character ((char)zwei)); 63 break; 64 default: 65 if (ch < 32) 66 { 67 eins = conv(ch/16); 68 zwei = conv(ch%16); 69 buf.append("\\x" + new Character ((char)eins) + new Character ((char)zwei)); 70 } 71 else 72 buf.append(ch); 73 break; 74 } 75 } 76 return buf.toString(); 77 } 78 79 private static int conv(int in) 80 { 81 if (in >=10) 82 return 55+in; 83 else 84 return 48+in; 85 } 86 87 } 88 89 | Popular Tags |