javaweb的乱码总结

javaweb的乱码总结

乱码的排查



数据库的数据到web表现层所经过的路径,来检查其字符集


1创建数据库时


把数据库的属性设置正确的字符集


在这里插入图片描述

2tomcat服务器字符集


我们在程序编写的过程中总是会遇到一些中文编码的问题,需要在程序中很多环节中去进行过滤和转义,依旧有可能遇到中文乱码的问题,当然是针对于tomcat服务器来说的。


在服务器/conf目录/server.xml文件

将相关语句改为:


<Connector port="8008" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443"  URIEncoding="UTF-8"/>

之前的语句没有URIEncoding="UTF-8"这一句


3连接数据库时



连接数据库的字符集
c3p0连接池的一个例子:

<c3p0-config>
	<default-config>
		<property name="driverClass">com.mysql.jdbc.Driver</property>
		<property name="jdbcUrl"> jdbc:mysql://localhost:3306/tt?characterEncoding=UTF-8</property>
		<property name="user">root</property>
		<property name="password">123</property>
	</default-config> 
</c3p0-config> 

在?characterEncoding=UTF-8

4客户端请求服务器响应时


客户端即浏览器在请求时,就是servlet在处理浏览器的request时

服务器响应,就是servlet返回给表现层response时

@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
		// TODO Auto-generated method stub
		doGet(request, response);
	}

设置request和response的字符集

  • request.setCharacterEncoding(“UTF-8”);
  • response.setCharacterEncoding(“UTF-8”);

这样就大概保证了,数据从数据库到表现层,或者表现层到数据库的字符集都是utf-8了。

おすすめ

転載: blog.csdn.net/Lazy_Goat/article/details/117911540