java乱码处理

tomcat配置编码:

找到tomcat目录下的conf的server.xml,在Connector节点添加URIEncoding="UTF-8"

<Connector port="80" maxHttpHeaderSize="8192" maxThreads="150"
minSpareThreads="25" maxSpareThreads="75" enableLookups="false"
redirectPort="8443" acceptCount="100" connectionTimeout="20000"
disableUploadTimeout="true"  URIEncoding="UTF-8"/>

使用全局过滤器

package com.bjdata.favorite.servlet;

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 GlobalFilter implements Filter{
    
    public void destroy() {
        
    }

    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        request.setCharacterEncoding("UTF-8");//设置编码
        
        chain.doFilter(request,response);
    }

    public void init(FilterConfig filterConfig) throws ServletException {
        
    }


}

配置过滤器

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <filter>
        <filter-name>globalFilter</filter-name>
        <filter-class>com.bjdata.favorite.servlet.GlobalFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>globalFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

Struts中配置编码

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<constant name="struts.i18n.encoding" value="UTF-8"/>
</struts>

返回json时乱码:

response.setCharacterEncoding("UTF-8");

原文地址:https://www.cnblogs.com/zhanghaoh/p/2839406.html