net.mingsoft.basic.util.UrlEncoderUtils Maven / Gradle / Ivy
The newest version!
/**
* Copyright (c) 2012-present 铭软科技(mingsoft.net)
* 本软件及相关文档文件(以下简称“软件”)的版权归 铭软科技 所有
* 遵循 铭软科技《服务协议》中的《保密条款》
*/
package net.mingsoft.basic.util;
/**
* 检查字符串是否进行了Encode编码
*/
public class UrlEncoderUtils {
/**
* 判断 str 是否已经 URLEncoder.encode() 过
* @param str 需要判断的内容
* @return 返回 {@code true} 为被 URLEncoder.encode() 过
*/
public static boolean hasUrlEncoded(String str) {
boolean encode = false;
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c == '%' && (i + 2) < str.length()) {
// 判断是否符合urlEncode规范
char c1 = str.charAt(i + 1);
char c2 = str.charAt(i + 2);
if (isValidHexChar(c1) && isValidHexChar(c2)) {
encode = true;
break;
} else {
break;
}
}
}
return encode;
}
/**
* 判断 c 是否是 16 进制的字符
* @param c 需要判断的字符
* @return 返回 {@code true} 为 16 进制的字符
*/
private static boolean isValidHexChar(char c) {
return ('0' <= c && c <= '9') || ('a' <= c && c <= 'f') || ('A' <= c && c <= 'F');
}
}