zoukankan      html  css  js  c++  java
  • Java中url传递中文参数取值乱码的解决方法

    java中URL参数中有中文值,传到服务端,在用request.getParameter()方法,得到的常常会是乱码,这将涉及到字符解码操作。

    方法一:

    http://xxx.do?ptname=’我是中国人’

    在取URL传递中文的页面对字符进行解码:

    String strPtname = request.getParameter("ptname");

    strPtname = new String(strPtname.getBytes("ISO-885Array-1"), "UTF-8");  

    这种方式受具体应用环境限制,往往在应用部署环境发生改变时,还会出现中文乱码。

    方法二:

    URLDecoder和URLEncoder,可以在任何应用部署环境下通用


    URLDecoder和URLEncoder它的作用主要是用于普通字符串和application/x-www-form-rulencodedMIME字符串之间的转换。

    URLEncoder类包含一个encode(String s,Stringcharcter)静态方法,它可以将普通字符串转换成application/x-www-form-urlencodedMIME字符串

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

    编码:URLEncoder(encode("包含中文的串"))

    解码:java.net.URLDecoder.decode("需要解码的串","utf-8");

    客户端
    title=
    encodeURI(encodeURI("包含中文的串"));
    url="<%=request.getContextPath()%>/print/printList!printTable.action?title="+title;

    在服务器端用java.net.URLDecoder.decode(getRequest().getParameter("title"),"UTF-8"),进行解码。

    URLDecoder和URLEncoder必须成对使用,报异常加try catch可解决。

  • 相关阅读:
    java编程题古典算法之兔子问题
    java基础之final关键字
    java基础之final关键字
    java基础之静态代码块,局部代码块,构造代码块区别。
    java基础之静态代码块,局部代码块,构造代码块区别。
    java基础之完数判断
    java基础之完数判断
    java基础之二维数组不定义列数
    正则表达式快速入门
    深入理解JSON对象
  • 原文地址:https://www.cnblogs.com/liwenjuan/p/3211736.html
Copyright © 2011-2022 走看看