public static String getUTF(String str) {
if (str.equals("") || str.length() < 1)
return "";
int length = str.length();
if (length % 2 != 0)
return "";
String strArray[] = new String[length / 2];
for (int i = 0; i < length / 2; i++) {
strArray[i] = str.substring(0, 2);
str = str.substring(2);
}
String newStr = "";
for (int j = 0; j < strArray.length; j++)
newStr = newStr + "%" + strArray[j];
try {
newStr = URLDecoder.decode(newStr, "gbk");
} catch (Exception exception) {
}
newStr = newStr.replaceAll("%", "");
return newStr;
}
/**
* 转换响应长度为byte[]数组为int长度
* @param rlength byte[] xml命令的长度
* @return i
*/
public static int bytesToint(byte[] rlength) {
return ((rlength[0]) << 24)
+ ((rlength[1]) << 16)
+ ((rlength[2]) << 8)
+ rlength[3];
}
/**
* 转换xml命令的长度为byte[]数字
* @param i int xml命令的长度
* @return byte[]
*/
public static byte[] intToBytes(int i) {
byte[] result = new byte[4];
result[3] = (byte) (i & 0x00FF);
result[2] = (byte) ((i >> 8) & 0x000000FF);
result[1] = (byte) ((i >> 16) & 0x000000FF);
result[0] = (byte) ((i >> 24) & 0x000000FF);
return result;
}
/**
* @param args
*/
// public static void main(String[] args) {
// // TODO Auto-generated method stub
// System.out.println(genRandomNum(10));
// }
/**
* 生成随即密码
* @param pwd_len 生成的密码的总长度
* @return 密码的字符串
*/
public static String genRandomNum(int pwd_len) {
//61是因为数组是从0开始的,26个大写字母+26个小写字母+10个数字
final int maxNum = 61;
int i; //生成的随机数
int count = 0; //生成的密码的长度
char[] str =
{
'A',
'B',
'C',
'D',
'E',
'F',
'G',
'H',
'I',
'J',
'K',
'L',
'M',
'N',
'O',
'P',
'Q',
'R',
'S',
'T',
'U',
'V',
'W',
'X',
'Y',
'Z',
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n',
'o',
'p',
'q',
'r',
's',
't',
'u',
'v',
'w',
'x',
'y',
'z',
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9' };
StringBuffer pwd = new StringBuffer("");
Random r = new Random();
while (count < pwd_len) {
//生成随机数,取绝对值,防止生成负数,
i = Math.abs(r.nextInt(maxNum)); //生成的数最大为61-1
if (i >= 0 && i < str.length) {
pwd.append(str[i]);
count++;
}
}
return pwd.toString();
}
if (str.equals("") || str.length() < 1)
return "";
int length = str.length();
if (length % 2 != 0)
return "";
String strArray[] = new String[length / 2];
for (int i = 0; i < length / 2; i++) {
strArray[i] = str.substring(0, 2);
str = str.substring(2);
}
String newStr = "";
for (int j = 0; j < strArray.length; j++)
newStr = newStr + "%" + strArray[j];
try {
newStr = URLDecoder.decode(newStr, "gbk");
} catch (Exception exception) {
}
newStr = newStr.replaceAll("%", "");
return newStr;
}
/**
* 转换响应长度为byte[]数组为int长度
* @param rlength byte[] xml命令的长度
* @return i
*/
public static int bytesToint(byte[] rlength) {
return ((rlength[0]) << 24)
+ ((rlength[1]) << 16)
+ ((rlength[2]) << 8)
+ rlength[3];
}
/**
* 转换xml命令的长度为byte[]数字
* @param i int xml命令的长度
* @return byte[]
*/
public static byte[] intToBytes(int i) {
byte[] result = new byte[4];
result[3] = (byte) (i & 0x00FF);
result[2] = (byte) ((i >> 8) & 0x000000FF);
result[1] = (byte) ((i >> 16) & 0x000000FF);
result[0] = (byte) ((i >> 24) & 0x000000FF);
return result;
}
/**
* @param args
*/
// public static void main(String[] args) {
// // TODO Auto-generated method stub
// System.out.println(genRandomNum(10));
// }
/**
* 生成随即密码
* @param pwd_len 生成的密码的总长度
* @return 密码的字符串
*/
public static String genRandomNum(int pwd_len) {
//61是因为数组是从0开始的,26个大写字母+26个小写字母+10个数字
final int maxNum = 61;
int i; //生成的随机数
int count = 0; //生成的密码的长度
char[] str =
{
'A',
'B',
'C',
'D',
'E',
'F',
'G',
'H',
'I',
'J',
'K',
'L',
'M',
'N',
'O',
'P',
'Q',
'R',
'S',
'T',
'U',
'V',
'W',
'X',
'Y',
'Z',
'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n',
'o',
'p',
'q',
'r',
's',
't',
'u',
'v',
'w',
'x',
'y',
'z',
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9' };
StringBuffer pwd = new StringBuffer("");
Random r = new Random();
while (count < pwd_len) {
//生成随机数,取绝对值,防止生成负数,
i = Math.abs(r.nextInt(maxNum)); //生成的数最大为61-1
if (i >= 0 && i < str.length) {
pwd.append(str[i]);
count++;
}
}
return pwd.toString();
}