彻底解决idea的编解码问题

一、打开idea,找到Setting,点击File Encoding编解码设置,将以下标红的三个部分全部设置为UTF-8.同理如果你的项目使用的是GBK或者其他编码格式,那么也设置为统一。

二、点击Java Compiler设置补齐-encoding utf-8参数

三、如果你的项目使用到了tomcat,那么需要配置下tomcat的运行参数如下

四、如果使用postman测试传递过来的中文是乱码的话,大概率是postman传递过来的请求头Content-Type出现了问题,可以检查设置合理的Content-Type的值。

五、如果以上都不行的话,还有一种暴力方法,当请求或响应的字符编码不一致时,可能会导致乱码。CharacterEncodingFilter 通过确保整个请求/响应流程中字符编码的一致性,避免了乱码问题的发生。由于不同平台和浏览器默认的字符编码可能不同,CharacterEncodingFilter 也可以确保应用程序的字符编码设置不会因为客户端或服务器的差异而出现问题。

找到项目的web.xml文件打开,加上以下内容

复制代码
<!--	<filter>-->
<!--		<filter-name>encodingFilter</filter-name>-->
<!--		<filter-class>com.ctid.ipm.api.beijing.filter.CharacterEncodingFilter</filter-class>-->
	<!-- CharacterEncodingFilter是自己新建的类,可以强制加载指定的编解码过滤器-->
<!--		<init-param>-->
<!--			<param-name>encoding</param-name>-->
<!--			<param-value>UTF-8</param-value>-->
<!--		</init-param>-->
<!--		<init-param>-->
<!--			<param-name>forceEncoding</param-name>-->
<!--			<param-value>true</param-value>-->
<!--		</init-param>-->
<!--	</filter>-->
<!--	<filter-mapping>-->
<!--		<filter-name>encodingFilter</filter-name>-->
<!--		<url-pattern>/*</url-pattern>-->
<!--	</filter-mapping>-->

CharacterEncodingFilter类如下

复制代码
//package com.ctid.ipm.api.beijing.filter;
//
//import javax.servlet.Filter;
//import javax.servlet.FilterChain;
//import javax.servlet.FilterConfig;
//import javax.servlet.ServletException;
//import javax.servlet.ServletRequest;
//import javax.servlet.ServletResponse;
//import java.io.IOException;
//
//public class CharacterEncodingFilter implements Filter {
//
//    private String encoding = "UTF-8";
//
//    @Override
//    public void init(FilterConfig filterConfig) throws ServletException {
//        String encodingParam = filterConfig.getInitParameter("encoding");
//        if (encodingParam != null) {
//            encoding = encodingParam;
//        }
//    }
//
//    @Override
//    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
//            throws IOException, ServletException {
//        request.setCharacterEncoding(encoding);
//        response.setCharacterEncoding(encoding);
//        chain.doFilter(request, response);
//    }
//
//    @Override
//    public void destroy() {
//        // ������Դ
//    }
//}
相关推荐
wuminyu1 小时前
专家视角看Java字节码加载与存储指令机制
java·linux·c语言·jvm·c++
callJJ3 小时前
Spring Data Redis 两种编程模型详解:同步 vs 响应式
java·spring boot·redis·python·spring
wbs_scy3 小时前
Linux线程同步与互斥(三):线程同步深度解析之POSIX 信号量与环形队列生产者消费者模型,从原理到源码彻底吃透
java·开发语言
jinanwuhuaguo5 小时前
(第三十三篇)五月的文明奠基:OpenClaw 2026.5.2版本的文明级解读
android·java·开发语言·人工智能·github·拓扑学·openclaw
xmjd msup5 小时前
spring security 超详细使用教程(接入springboot、前后端分离)
java·spring boot·spring
952366 小时前
SpringBoot统一功能处理
java·spring boot·后端
Lyyaoo.6 小时前
优惠券秒杀业务分析
java·开发语言
消失的旧时光-19436 小时前
统一并发模型:线程、Reactor、协程本质是一件事(从线程到协程 · 第6篇·终章)
java·python·算法
勿忘初心12216 小时前
Java 国密 SM4 加密工具类实战(Hutool + BouncyCastle)|企业级数据加密 + 兼容 JDK8
java·数据安全·数据加密·后端开发·企业级开发·国密 sm4
庞轩px6 小时前
第8篇:原子类与CAS底层原理——无锁并发的实现
java·cas·乐观锁·aba·无锁编程·自旋