沙漠中的鱼

欲上天堂,先下地狱
posts - 0, comments - 56, trackbacks - 0, articles - 119
  BlogJava :: 首页 ::  :: 联系 :: 聚合  :: 管理

URL中文参数值乱码问题解决

Posted on 2008-11-24 10:35 沙漠中的鱼 阅读(902) 评论(0)  编辑  收藏 所属分类: Java
       最近在做Infoportal集成URL地址遇到一个小小的问题,在URL地址上如果包含有中文参数时,在浏览器地址上就会出现乱码,想到了可能需要把URL参数值转码,写了一段代码测试一下。但是发现有一个问题,就是用java字符串中的split当分割“?”时,直接报java.util.regex.PatternSyntaxException: Dangling meta character '?' near index 0异常,原来这个是转义字符,稍微修改了一下就好了

程序

String url="http://servername?country=中国";
        String[] segment
=url.split("\\?");
        StringBuilder newUrl
=new StringBuilder();
        newUrl.append(segment[
0]+"?");
        String[] argStr
=segment[1].split("&");
        
for(int i=0;i<argStr.length;i++){
            String[] args
= argStr[i].split("=");
            
if(args==null ||args.length==0)
                
continue;
            newUrl.append(args[
0]);
            
if(args[1]!=null){
                
try {
                    String argValue
=URLEncoder.encode(args[1],"UTF-8");
                    newUrl.append(
"="+argValue);
                }
 catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }

            }

            newUrl.append(
"&");
        }

        System.out.println(newUrl.toString());

原URL:http://servername?country=中国

转码后的URL:http://servername?country=%E4%B8%AD%E5%9B%BD&


只有注册用户登录后才能发表评论。


网站导航: