JAVA WEB 程序乱码问题解决

xiaoxiao2022-06-12  18

以 mysql为例:

1 首先是数据库的编码问题,尽量让数据库的编码和程序的编码一致起来,推荐utf-8

 这又分为jdbc部分的编码设置:

  a 需要指定connection url为:jdbc:mysql://localhost/dms?characterEncoding=UTF-8,注意编码部分

  b 设置数据库结构的编码

2 增加字符编码过滤器(filter):

  web.xml的配置:

   <filter>    <filter-name>Encoding</filter-name>    <filter-class>com.hf.servlet.filter.CharacterEncodingFilter</filter-class>    <init-param>      <param-name>encoding</param-name>      <param-value>utf-8</param-value>    </init-param>  </filter>

<filter-mapping>    <filter-name>Encoding</filter-name>    <url-pattern>/*</url-pattern>  </filter-mapping>

package com.hf.servlet.filter;

import java.io.IOException;

import javax.servlet.*;

public class CharacterEncodingFilter implements Filter {// default character encodingString defaultEncoding = "UTF-8"; public void init(FilterConfig config) throws ServletException {String encoding = config.getInitParameter("encoding");if (encoding != null) {defaultEncoding = encoding;}}

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {request.setCharacterEncoding(defaultEncoding);chain.doFilter(request, response);}

public void destroy() {defaultEncoding = null;}

}

3更改jsp文件编码

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">

</HEAD>

处理好这三部分就应该差不多啦

 

转载请注明原文地址: https://www.6miu.com/read-4932763.html

最新回复(0)