URL中文字符处理工具类

/**
 * 处理url里的中文
 * @param url
 * @return
 */
private String dealURLChinaStr(String url){
    if (StringUtils.isEmpty(url)) {
        return url;
    }
    url = url.trim();
    String[] urlParts = url.split("\\?");
    if(null == urlParts || urlParts.length<2){
        return url;
    }
    String newURL = urlParts[0]+"?";
    String[] params = urlParts[1].split("&");
    for (int i=0; i<params.length; i++) {
        String[] keyValue = params[i].split("=");
        if(0 ==i ){
            newURL = newURL + keyValue[0]+"=" + transChineseStr(keyValue[1]);
        }else{
            newURL = newURL + "&" + keyValue[0]+"=" + transChineseStr(keyValue[1]);
        }
    }
    return newURL;
}

/**
 * 正则转换中文字符
 * @param str
 * @return
 */
private String transChineseStr(String str) {
    if (StringUtils.isEmpty(str)) {
        return str;
    }
    String chinaPattern = "[\u2000-\u206f\u3000-\u303f\u4e00-\u9fef\uff00-\uffef]*";
    if(Pattern.matches(chinaPattern,str)){
        try{
            str = URLEncoder.encode(str, "utf-8");
        }catch (Exception e){
            e.getMessage();
        }
    }
    return str;
}

版权声明:本文为BearSilencer原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。