JavaWeb应用中完整的乱码解决方案(原创)

静态控制
1,在JSP头部声明:
<%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8" %>
2,在Jsp的html代码中,声明UTF-8:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

3,设定数据库连接方式是UTF-8。例如连接MYSQL时配置URL如下:
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8 


动态控制
将所有来自浏览器的请求(request)转换为utf-8,因为浏览器发过来的请求包根据浏览器所在的操作系统编码,可能是各种形式编码。关键一句:
request.setCharacterEncoding("utf-8") 

*需要注意的是:以上这种方式只对post方式传值有效,对get方式无效。

使用get方式传值时的临时解决方案
String strDisplay = new String(strParm.getBytes("ISO8859-1"), "utf-8");   


使用get方式传值时的完整解决方案——服务器方面的修改
在tomcat根目录中找到conf目录,在server.xml中找到<Connector>结点,做如下修改:
    <Connector port="8080" protocol="HTTP/1.1" 
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="utf-8" />
加上红字部分,这样就可以完全解决get方式传值时的乱码问题。但是由于这样的方案是对服务器本身设置的修改,所以会影响其它程序的运行。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值