ie浏览器不会对url里进行编解码处理 如果url参数带中文客户端和服务器编码不一致就会出现乱码 导致请求400错误
/**
* 对url中文进行编码
* @throws UnsupportedEncodingException
*/
public static String encode(String url) throws UnsupportedEncodingException {
Matcher matcher = Pattern.compile("[\\u4e00-\\u9fa5]").matcher(url);
int count = 0;
while (matcher.find()) {
String tmp = matcher.group();
url = url.replaceAll(tmp, URLEncoder.encode(tmp, DEFAULT_URL_ENCODING));
}
return url;
}
jeesite 中分页参数带中文 ie点击400错误
/**
* 构造分页导航的URL,包含查询参数 用于点击“下一页”时,能带参数进行查询
*
* @param request
*/
private void buildPageURL(HttpServletRequest request) {
String sPageURLPara = buildParameter(request);
if (sPageURLPara.length() > 0) {
try {
pageURL = "?" + Encodes.encode(sPageURLPara.substring(1)) + "&";
} catch (UnsupportedEncodingException e) {
logger.debug(e.toString());
}
} else {
pageURL = "?";
}
pageURL = request.getRequestURI() + pageURL + "pageNo=";
}