现在的位置: 首页 > 综合 > 正文

jsp页面的url里面传中文问题

2012年12月19日 ⁄ 综合 ⁄ 共 555字 ⁄ 字号 评论关闭

    用jspservlet做网页开发的时候,如果使用request.setCharacterEncoding("utf-8");和  response.setContentType("text/html;charset=UTF-8");的方式设置字符集,只能对post的请求起作用,因为这样的设置只能对请求消息体起作用。get请求的参数放在请求头部,就是url里,因此此种设置无效。

    如果在url里传了中文,如<a href="server/upload?command=我是靖玉王">用get方式传中文</a>,参数里的‘我是靖玉王’是浏览器以自己默认的字符集经过转码后提交到后台(当然转码后的参数不再是原来的中文)。后台的servlet接收该参数,String command = request.getParameter("command"),此时的command里的参数是一个ISO-8859-1的字符编码。如果在一同样的编码级转如command = new String(command.getBytes("ISO-8859-1"),"GBK");此时得到的command就是一个前台传过来的中文了,打印 System.out.println("The command is :" + command);会出来完整的中文

抱歉!评论已关闭.