首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

[Java基础]一个小弟我使用的URL解码方法,支持使用IE指定UTF8和GBK

2012-12-21 
[Java基础]一个我使用的URL解码方法,支持使用IE指定UTF8和GBK// url中获取参数// inputEncodingString inp

[Java基础]一个我使用的URL解码方法,支持使用IE指定UTF8和GBK

        // url中获取参数        // inputEncoding        String inputEncoding = "GBK";        String ie = request.getParameter("ie");        if (StringUtil.equalsIgnoreCase("UTF-8", ie) || StringUtil.equalsIgnoreCase("UTF8", ie)) {            inputEncoding = ie;        }        // keywords(设置tomcat容器的URIEncoding="ISO-8859-1")        // 首先从request获取请求中的关键词,此时keywords3的值可能为:        // (1)如果请求中的关键词是"手机"的GBK原生字节码"[0xCA][0xD6][0xBB][0xFA]":那么此时keywords3 = 乱码        // (2)如果请求中的关键词是"手机"的GBK URLEncoding后的编码"%CA%D6%BB%FA":那么此时keywords3 = %CA%D6%BB%FA        // (3)如果请求中的关键词是"手机"的UTF8原生字节码"[0xE6][0x89][0x8B][0xE6][0x9C][0xBA]":那么此时keywords3 = 乱码        // (4)如果请求中的关键词是"手机"的UTF8 URLEncoding后的编码"%E6%89%8B%E6%9C%BA":那么此时keywords3 = %E6%89%8B%E6%9C%BA        String keywords3 = request.getParameter("keywords");        if (StringUtil.isNotBlank(keywords3)) {            String keywords2 = null;            try {                // 然后按照inputEncoding转换keywords3为keywords2,keywords2的值可能为:                // (1)如果keywords3 = 乱码:那么此时keywords2 = 手机                // (2)如果keywords3 = %CA%D6%BB%FA:那么此时keywords2 = %CA%D6%BB%FA                // (3)如果keywords3 = %E6%89%8B%E6%9C%BA:那么此时keywords2 = %E6%89%8B%E6%9C%BA                keywords2 = new String(keywords3.getBytes("ISO-8859-1"), inputEncoding);// “中文”或"%C6%A1%BE%C6"            } catch (UnsupportedEncodingException e1) {                keywords2 = keywords3;            }            // 然后按照inputEncoding转换keywords2为keywords,keywords的值可能为:            // (1)如果keywords2 = 手机:那么此时keywords = 手机            // (2)如果keywords2 = %CA%D6%BB%FA:那么此时keywords = 手机            // (3)如果keywords2 = %E6%89%8B%E6%9C%BA:那么此时keywords = 手机            String keywords = UrlEncodeUtil.decode(keywords2, inputEncoding);// “中文”            // 只保留keywords的前40个字符            if (keywords.length() > 40) {                keywords = keywords.substring(0, 40);            }            param.setKeywords(keywords);            param.setGbkKeywords(UrlEncodeUtil.encode(keywords, "GBK"));        }
?

热点排行