public String toUnicodeStr(String s){
StringBuffer unicodeStr = new StringBuffer();
for (int i = 0; i < s.length(); i++) {
unicodeStr.append(new String(showBytes(moveBytes(2, s.charAt(i)))));
}
return unicodeStr.toString();
}
/*
* from byte[] which be convertCode to byte[] which be showAbleBytes
* byte[] length from length to length*2
*/
public byte[] showBytes(byte[] b){
//String s = new String();
//char[] ch = new char[b.length*2];
byte[] newBytes = new byte[b.length*2];
byte[] oneBytes;
for (int i = 0; i < b.length; i++) {
oneBytes = hexToAsc(b[i]);
newBytes[i*2]=oneBytes[0];
//ch[i*2]=(char)(oneBytes[0]&0xff);
newBytes[i*2+1]=oneBytes[1];
//ch[i*2+1]=(char)(oneBytes[1]&0xff);
}
return newBytes;
}
/*
* 计数,通过位移后和整形变量相与得到结果
* 0000 0000 is a byte,so move 8 bytes add to new byte[]
*for example,001a 0001 the new byte[] is {001a,0001}
*/
public byte[] moveBytes(int byteLen,int a){
byte[] moveTag=new byte[byteLen];
int j=0;
for (int i = byteLen-1; i >= 0; i--) {
//System.out.println("i="+i);
moveTag[i]=moveByte(a, 8*j);
// System.out.println("j="+j);
j=j+1;
}
return moveTag;
}
/*
* byte move
* a is move target
* for example
* len is move length
*/
public byte moveByte(int a,int len){
return (byte)((a>>len)&0xff);
}