zoukankan      html  css  js  c++  java
  • url中有空格等特殊字符及中文字符处理

    在做爬虫时,爬下来的书籍的URL地址各式各样,什么情况都有。
    有的url地址既有中文,又有%20 空格等特殊字符。如 http://www.ishareread.com/book/2018/不成问题的问题%20-%20老舍.mobi
    如果是在url中有中文需要转码,但转码后会将%号替换成%25,导致url不能访问了。
    解决的办法,先判断url中是否有中文,如果有中文,则替换特殊字符,再进行转码。
    代码如下:
    判断字符串是否含有中文的方法:
    public static boolean isContainChinese(String str) {
    Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
    Matcher m = p.matcher(str);
    if (m.find()) {
    return true;
    }
    return false;
    }

    #先判断是否有中文,然后替换特殊字符,再转码,一般来说英文的url是不需要转码的。
    if(StringUtil.isContainChinese(ebookDownloadUrl))
    {
    try
    {
    ebookDownloadUrl=ebookDownloadUrl.replaceAll("%20", " ");
    ebookDownloadUrl=UriUtils.encodePath(ebookDownloadUrl, "UTF-8");
    }
    catch(Exception ex)
    {
    log.error(String.format("解释文件路径失败,URL地址为%s", ebookDownloadUrl), ex);
    }
    }
    return "redirect:" +ebookDownloadUrl;




  • 相关阅读:
    Nodejs
    webpack与gulp的区别
    gulpjs
    Commonjs、AMD、CMD
    建造者模式
    工厂模式
    设计模式分类
    python的接口
    Python代码教你批量将PDF转为Word
    什么是“堆”,"栈","堆栈","队列",它们的区别?
  • 原文地址:https://www.cnblogs.com/xiejava/p/15171439.html
Copyright © 2011-2022 走看看