关闭

get方式传值中文乱码

标签: servlet乱码get传值
4714人阅读 评论(1) 收藏 举报
分类:

如下情况:

<a id="bookname" title="${book.bname }"	href="<c:url value='/BookServlet?method=findByBname&bname=${book.bname }'/>">

问题描述:

  • 点击超链接,则传值到servlet中,在servelt中通过request.getParameter("bname"); 获取到的中文字符都显示为“?“

解决方法:

  1. 方法一: get方式提交的参数编码,只支持iso8859-1编码。因此,如果里面有中文。在后台就需要转换编码,如下
    String bname = request.getParameter("bname");
    bname = new String(bname .getBytes("iso8859-1"),"utf-8");

    前提是你页面编码就是utf-8,如果是gbk,那上面那句代码后面就改成gbk。
    But修改后我的问题仍没解决,继续。。。

  2. 方法二:在客户端使用 URLEncoder.encode(“中文”,”UTF-8”)对中文参数进行编码,在服务器端需要进行解码this.setName(java.net.URLDecoder.decode(name, “UTF-8”));
    比较麻烦!

  3. 方法三:修改tomcat的server.xml文件:

    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true"/>

    • 添加URIEncoding="UTF-8" useBodyEncodingForURI="true"这一句。我使用的tomcat8,之前没有添加useBodyEncodingForURI="true",所以还是乱码,添加后问题解决!
2
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:107803次
    • 积分:1296
    • 等级:
    • 排名:千里之外
    • 原创:55篇
    • 转载:21篇
    • 译文:0篇
    • 评论:20条
    文章分类
    最新评论