js.ajax等传参乱码的解决

3 篇文章 0 订阅
1.网页编码设置为utf-8
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
2.服务器设置为utf-8
如tomcat的server.xml中
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
[color=red]URIEncoding="UTF-8"[/color]/>
设置为utf-8
3.自定义过滤器设置字符编码为utf-8
request 和response都设置为utf-8
setCharacterEncoding("UTF-8");
如下:

import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;
public class LifeOnlineFilter extends StrutsPrepareAndExecuteFilter {

@Override
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {

HttpServletRequest request=(HttpServletRequest) req;
String uri=request.getRequestURI();
req.setCharacterEncoding("UTF-8");
res.setCharacterEncoding("UTF-8");
if(uri.indexOf("Androidservice")!=-1){
System.out.println("FilterDispetor.doFilter():true");
chain.doFilter(req, res);
}else{
super.doFilter(req, res, chain);
}
}
}

4.链接数据库设置为utf-8
<property name="url" value="jdbc:mysql://localhost:3306/lifeonline?useUnicode=true&characterEncoding=UTF-8">
</property>

5.把数据库编码设置为utf-8
如mysql数据如,在配置的时候勾选上utf-8原先mysql默认的为latin
总的来说只要把各个层次的编码设置为一致就不会乱码,
有些地方说设置成gbk不乱码,最好用utf-8因为其几乎支持全世界的所有语言
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值