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