欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何解决JSP页面中文乱码问题

程序员文章站 2022-04-16 22:37:48
...

解决方法:
方法一:

String name=request.getParameter(“userName”);
//把name的值转换为标准字节
byte n[]=name.getBytes(“ISO-8859-1);
//把字节转换为UTF-8编码的字符串,以解决中文乱码问题
name=new String(n,”UTF-8);

或者:

String name=new String(request.getParameter(userName).getBytes(“ISO-8859-1),”UTF-8)

方法二:
在工程项目下新建一个EncodingFilter.java,代码为:

package com.filter;
/**
 * 因为中文字符在传输时可能会出现乱码的问题,该模块式在Filter下新建一个EncodingFilter解决中文字符集乱码
 * 该模块写好后需要到web.xml下对EncodingFilter进行相应的配置
 * 
 */

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class EncodingFilter implements Filter{
	public EncodingFilter(){
		System.out.println("过滤器构造");
	}
	public void destroy() {
		System.out.println("过滤器销毁");
	}
	public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {
		request.setCharacterEncoding("utf-8"); //将编码改为utf-8
		response.setContentType("text/html;charset=utf-8");
		chain.doFilter(request, response);
	}
 
	public void init(FilterConfig arg0) throws ServletException {
		System.out.println("过滤器初始化");
	}
 
}

将EncodingFilter.java在web.xml中进行配置,如下:

<filter>
    <filter-name>EncodingFilter</filter-name>
    <filter-class>com.filter.EncodingFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>EncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

方法三:
获取连接时通过传送参数设置数据库的编码方式,即在数据库url后面指定编码方式:

"jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8";

方法四:
在创建表时设置字符集和排序规则
在创建表时如果有字段需要输入中文,需要把该字段的字符集和排序规则进行设置
如何解决JSP页面中文乱码问题

方法五:
在创建数据库时设置字符集和排序规则
在创建数据库时对字符集和排序规则进行设置。
如何解决JSP页面中文乱码问题

相关标签: JSP eclipse mysql