zoukankan      html  css  js  c++  java
  • 关于JAVA中URL传递中文参数,取值是乱码的解决办法

    前几天看到有网友在问URLDecoder和URLEncoder方面的使用问题,突然想起,原来我刚遇到这两个类时,也觉得很神密,由此可以想想初学者的心情,于是便有了今天的这篇文章.
       其实,这两个类的使用并不复杂,URLDecoder和URLEncoder它的作用主要是用于普通字符串和application/x-www-form-rulencodedMIME字符串之间的转换,一般的人会以为后一个字符串比较专业,以为有什么高深的知识,其实不然.
     

        下面,我们在在"百度"中搜索"网络时空",会看到如下所示的图示


         从上图中可以看出:当我们搜索的关健字包含中文时,这些关健字就会变成如图所示的"乱码",实际上这不是乱码,这就是所谓的applicaion/x-www-form-urlencodedMIME字符串.
         当URL地址里包含非西欧字符的字符串时,系统会将这些非西欧转换成如图所示的特殊字符串,那么编码过程中可能涉及将普通字符串和这种特殊字符串的相关转换,这就是需要使用URLDecoder和URLEncoder类

         URLDecoder类包含一个decode(String s,Stringcharcter)静态方法,它可以将看上去乱码的特殊字符串转换成普通字符串
         URLEncoder类包含一个encode(String s,Stringcharcter)静态方法,它可以将普通字符串转换成application/x-www-form-urlencodedMIME字符串

         如下程序代码 
    importjava.net.*;

    public class URLDecoderTest
    {
     public static void main(String[] args)
      throws Exception
     {
      //将application/x-www-form-urlencoded字符串
      //转换成普通字符串
      //其中的字符串直接从上图所示窗口复制过来
      String keyWord =URLDecoder.decode(
       "%CD%F8%C2%E7%CA%B1%BF%D5","UTF-8");
      System.out.println(keyWord);
      //将普通字符串转换成
      //application/x-www-form-urlencoded字符串
      String urlStr =URLEncoder.encode(
       "网络时空" ,"UTF-8");
      System.out.println(urlStr);
     }
    }


        上面程序中就是普通中文字符串和application/x-www-form-urlencoded MIME字符串之间的转换.

         运行上面程序结果图示如下

  • 相关阅读:
    使用Cmake生成makefile
    c++模板类(一)理解编译器的编译模板过程
    C++ 模板
    c++/c 获取cpp文件行号跟文件名
    java获取代码调用位置信息
    android获取手机ip
    Cocos2d-html5游戏开发,常用工具集合
    cocos2d-html5基础
    Cocos2d-x-html5之HelloWorld深入分析与调试
    基于ndk_r7_windows编译实现ndk项目,不需要cygwin
  • 原文地址:https://www.cnblogs.com/zfswff/p/4966251.html
Copyright © 2011-2022 走看看