URL无法显示某些特殊符号,这个时候就要使用编码了。编码的格式为:一个百分号,后面跟对应字符的ASCII(16进制)码值。例如 空格的编码值是"%20"。(ASCII参考)
有些字符在URL中具有特殊含义,基本编码规则如下:
特殊含义 十六进制值
1.+ 表示空格(在 URL 中不能使用空格) %20
2./ 分隔目录和子目录 %2F
3.? 分隔实际的 URL 和参数 %3F
4.% 指定特殊字符 %25
5.# 表示书签 %23
6.& URL 中指定的参数间的分隔符 %26
java中URL 的编码和解码函数
转码:java.net.URLEncoder.encode(String s)
解码:java.net.URLDecoder.decode(String s);
2:UUID和base64的使用
package com.chinacache.utils;
import java.security.MessageDigest;
import java.util.Random;
import java.util.UUID;
import org.apache.commons.codec.binary.Base64;
import org.apache.log4j.Logger;
public class UUIDUtil {
public static String genId() {
return UUID.randomUUID().toString();
}
public static String genId1() {
String str = System.currentTimeMillis() + new Random().nextLong() + "";
return MD5.encode(str);
}
}
class MD5 {
private static Logger logger = Logger.getLogger(MD5.class);
public static String encode(String value) {
try {
// 数据也有指纹
MessageDigest md = MessageDigest.getInstance("md5");
byte b[] = md.digest(value.getBytes());// 到到加密后的value的数据指纹
// Base64:把3个字节转换为4个字节
return Base64.encodeBase64String(b);
} catch (Exception e) {
logger.error("uuid Validation defeat", e);
}
return null;
}
}