Day9 解决中文乱码

中文乱码可能路径

1.数据库内中文乱码

       1.1已建立表更改编码模式

        1.右击已建立表,转储SQL文件

        2.打开文件,将下述编码格式修改为utf8,将代码全部复制。

        3.将代码全部复制,打开新建查询,运行代码,SQL即支持中文输入。

        1.2新建表设置编码模式

        在建表语句后加上 ENGINE=InnoDB DEFAULT CHARSET utf8  ;

       

2.数据库连接JDBC中文乱码

        连接设置编码模式utf-8

        在连接时加入?characterEncoding=utf-8,类似网址传递资源


con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/stucour?characterEncoding=utf-8","root",""); 

        因为Dao层中写了很多连接,如果修改的话,要一个个全部修改,麻烦而且易错,所以我们新建一个config包,内含DataSource类,里面包含这些信息,要修改的话只要在里面修改即可。

package config;

public class DataSource {
	public static String url = "jdbc:mysql://127.0.0.1:3306/stucour?characterEncoding=utf-8";
	public static String username = "root";
	public static String password = "";
}

        连接时代码:

con = DriverManager.getConnection(DataSource.url ,DataSource.username ,DataSource.password); 

3、5.Servlet传递jsp数据中文乱码

        3.1.response设置编码格式

        在传递数据时,重定向和转发时,设置response中的编码模式,代码如下:

response.setCharacterEncoding("utf-8");

        5.1.request设置编码格式

        在传递数据时,重定向和转发时,设置request中的编码模式,代码如下:

request.setCharacterEncoding("utf-8");

       3、5.2.设置filter过滤层

        因为Servlet中涉及多个跳转页面,所以如果要修改的话,也很麻烦,所以我们加入filter过滤层,通过过滤全部跳转界面,来实现全部request和response的设置编码模式。

  • 1.新建一个filter文件

  • 2.设置访问路径为/*,这样子只要输入访问资源,就会先跳转到filter中去,无论页面是否存在

  • 3.修改代码如下:

        无论是否存在,所有访问资源都会先进入该过滤层,然后执行doFilter语句后再进入对应访问资源。

	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		// TODO Auto-generated method stub
		// place your code here

		// pass the request along the filter chain
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		chain.doFilter(request, response);/只有执行该语句,才会放行,否则全部拦截
	}

4.JSP文件内中文乱码

        4.1单文件设置

        1.JSP文件本身编码模式设置为utf-8

        2. 文件内代码设置:

       4.2 新文件统一设置

        Windows->Preferences->搜索jsp->JSP Files->修改编码为utf-8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值