如何解决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";
方法四:
在创建表时设置字符集和排序规则
在创建表时如果有字段需要输入中文,需要把该字段的字符集和排序规则进行设置
方法五:
在创建数据库时设置字符集和排序规则
在创建数据库时对字符集和排序规则进行设置。
上一篇: 谁说跨境贸易低迷了?那是你没看到这些数据
下一篇: 阿里收购网易考拉大洗牌,海淘行业危机四伏