Servlet解决中文乱码

一、出现乱码原因

乱码原因:传输方和接收方采用的编码不一致。传输方对参数采用的是UTF-8编码而接收方却用GBK进行解析,当然是乱码,且Tomcat服务器默认采用的ISO8859-1编码得到参数值,如果没有设置也可能会出现乱码。

Servlet 中文乱码问题及解决方案剖析


二、Post请求乱码

1. 乱码原因
  Post请求是以二进制流的形式发送到服务器,服务器收到数据后,默认以iso-8859-1进行编码。
post请求提交参数乱码原因
2. 乱码解决
  在获取请求参数前设置字符集即可

	request.setCharacterEncoding("UTF-8");

三、响应乱码

1. 乱码原因
  服务器输出的字符串的编码和客户端显示字符串的编码不一致。
响应乱码原因及解决方案

2. 乱码解决

 	//设置response字符流默认使用的码表
	//response.setCharacterEncoding("UTF-8");

    /* 1.设置response的字符流使用的码表
       2.通知浏览器使用指定的码表去解码,在向浏览器输出字符流之前
    */
    response.setContentType("text/html;charset=utf-8");

四、数据库乱码

使用Jdbc连接MySQL数据库,可能会出现乱码

解决方法:

连接数据库URL后 + &characterEncoding=UTF-8

创建表时设置编码格式   ENGINE=InnoDB DEFAULT CHARSET=utf8;

补充:Java web项目各种乱码的解决方案

  • 14
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值