微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

利用resteasy框架构建rest webservice----第五波:java代码调用乱码解决方案

工作原因加家里事情多,很久木有更新了,也木有按照预定计划的那样持续介绍resteasy相关的东西,就介绍下项目出现的问题

今天主要介绍下当URI中出现中文时,服务端获取出得Pathparam为乱码的问题:

  1. String urlResouce = null;  
  2.         try {  
  3.             urlResouce = "http://10.28.0.203:8080/cloud-storeage-boss/cai:dafile/"+URLEncoder.encode("中文eclipse.zip","utf-8");  
  4.         } catch (UnsupportedEncodingException e1) {  
  5.             // Todo Auto-generated catch block  
  6.             e1.printstacktrace();  
  7.         } // create URL  
  8.         File localFile = new File("Z:\\tools\\eclipse-jee-helios-SR2-win32.zip");  
  9.         try{  
  10.               
  11.         HttpURLConnection urlConnection =  
  12.         (HttpURLConnection) (new URL(urlResouce)).openConnection();  
  13.         urlConnection.setRequestProperty("Charset""UTF-8");  
  14.         urlConnection.setRequestProperty("auth""maomaocaicai");  
  15.         urlConnection.setDoInput(true);  
  16.         urlConnection.setDoOutput(true);  
  17.         urlConnection.setRequestMethod("PUT");  
  18.         OutputStream urlOutputStream = urlConnection.getoutputStream();  
  19.         FileInputStream fileInputStream = new FileInputStream(localFile);  
  20.         IoUtils.copy(fileInputStream, urlOutputStream);  
  21.         fileInputStream.close();  
  22.         urlOutputStream.close();  
  23.         System.out.println(urlConnection.getResponseCode());  
  24.         }  
  25.         catch(Exception e)  
  26.         {  
  27.             e.printstacktrace();  
  28.         }  

乱码参数的解决方法很简单,就是将相应URI进行UTF-8的编码 这个原理比较简单因为中文时两个字节,而在网络进行传输的时候由于某种原因(具体原因就是编码的问题,请google)会进行单字节的编码,解析出来的中文就变乱码了。----浏览器在传输的时候都会对中文进行编码传输

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐