javaweb乱码问题

Javaweb:

1.客户端传回服务器端:

在客户端通过浏览器将表单发回时,若表单是
1.get传输
在这里插入图片描述
2.post方法传输出现乱码
解决方法:

req.setCharacterEncoding("utf-8");

设置request对象的解码方式


2.服务器传给客户端:

 PrintWriter writer = resp.getWriter();
        writer.write("成功了");

1.设置response使用utf-8编码
resp.setCharacterEncoding(“utf-8”);
在响应头中告诉浏览器使用utf-8解码
resp.setHeader(“Content-Type”,“text/html;charset=utf-8”);
2.包含第一种方式的两个功能 resp.setContentType(“text/html;charset=utf-8”);


# 原因分析:

在这里插入图片描述
总而言之:
比如html这种文件,设置了,当在网络中传输时会根据此编码格式进行编码,当请求为get时,tomcat服务器会根据设置的URIEncoding来进行解码,如果没有设置则会使用默认的ISO-8859-1来解码。要么在tomcat服务器中进行编码配置,要么采用stringgetbytes重新设置编码。
当请求为post时,tomcat则会是用contentType中设置的字符集来进行解码,也可以自己设置字符集编码:request.setCharacterEncoding(charset)

characterEncoding=UTF-8

spring.datasource.url = jdbc:my
sql://localhost:3306/blog_system?serverTimezone=UTC&useUni
code=true&characterEncoding=UTF-8

请添加图片描述
在idea中打开了mybatis log-impl将mysql查询记录打印到控制台,原以为中文在这里显示就是数据库也是收到了一样的中文字符,而这里仅仅是idea收到参数,打印到控制台,然后再传到数据库,数据库和idea编码不一样,中文传到数据库再执行时就变成乱码。所以要同一idea文件的编码和数据库的一样,就需要配置characterEncoding=UTF-8。
#MyBatis配置
mybatis:
configuration:
#开启驼峰命名匹配映射
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值