做2维码跳转,经常遇到要跳转的url没有经过urlEncode过,导致不能正确的跳转到目标地址(虽然这是客户生成码的事,但是既然已成事实,还是需要解决的)
因此需要在服务端判断下跳转的url是否已经经过urlEncode过了
代码如下:
import java.util.BitSet;
/**
* 类UrlEncoderUtils.java的实现描述:TODO 类实现描述
*
* @author zhihui.tangzh(虚泊) 2016年4月23日 下午4:52:15
*/
public class UrlEncoderUtils {
private static BitSet dontNeedEncoding;
static {
dontNeedEncoding = new BitSet(256);
int i;
for (i = 'a'; i <= 'z'; i++) {
dontNeedEncoding.set(i);
}
for (i = 'A'; i <= 'Z'; i++) {
dontNeedEncoding.set(i);
}
for (i = '0'; i <= '9'; i++) {
dontNeedEncoding.set(i);
}
dontNeedEncoding.set('+');
/**
* 这里会有误差,比如输入一个字符串 123+456,