web项目乱码问题

web项目很容易乱码, 尤其是传中文参数的时候

有的时候,页面和后台都设置是同样的编码为什么还是会乱码呢?

原因是web容器的问题, 比如Tomcat默认编码是ISO-8859-1,Weblogic默认编码是UTF-8,这时若是页面传的中文参数与web容器的默认编码不统一时便会出现乱码的现象

解决方案:

一,修改web容器的编码:

   1.修改Tomcat的默认编码,找到conf/server.xml,在<Connector port="8080" 节点中加入属性URIEncoding="UTF-8" ... 默认是ISO-8859-1

   2.修改Weblogic的默认编码,找到与web.xml同路径的weblogic.xml,加入如下配置:

  <charset-params> 
    <input-charset> 
      <resource-path>/*</resource-path> 
      <java-charset-name>GBK</java-charset-name> 
    </input-charset> 
  </charset-params>
二,在代码中进行编码转换:

   因为一般我们传入中文参数的请求并不多,所以对某些请求单独进行设置也不失为一个好办法..

   1.对于编码为ISO-8859-1的web容器:

  String param= new String(param.getBytes("ISO-8859-1"), "UTF-8");
   2. 对于编码为GBK的web容器:

  String param= new String(param.getBytes("GBK"), "UTF-8");

其他的方式,诸如加入filter的方式网上有很多,参考: web乱码解决

还有如何判断web容器是Tomcat还是Weblogic还是Jetty等.. 参考:判断web容器类型


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值