中文编码问题

来源:互联网 发布:西南交大信息与网络 编辑:程序博客网 时间:2024/06/06 16:32
1、在JS里对中文参数进行两次转码

var login_name = document.getElementById("loginname").value;   
login_name = encodeURI(login_name);   
login_name = encodeURI(login_name);   
2、在服务器端对参数进行解码

String loginName = ParamUtil.getString(request, "login_name");   
loginName = java.net.URLDecoder.decode(loginName,"UTF-8");   

具体请见http://blog.csdn.net/Seven_23/archive/2009/09/02/4510670.aspx 

第二种方法:

前台login_name = encodeURIComponent(login_name);  这样的 编码一次 

action中 
    String temp = new String(keyword.getBytes("ISO-8859-1"),"utf-8");

    keyword = URLDecoder.decode(temp, "utf-8");



3、提交页面的url要进行编码:
<form method=post action='showInfo.jsp?username=<%=java.net.URLEncoder.encode("中国人") %>'>
         <input type="submit" value="Submit" name="提交">  
 </form>
服务端
String str = new String(request.getParameter("username").getBytes("ISO8859_1"),"UTF-8");