当前位置: 首页 > news >正文

彻底解决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() {
//        // ������Դ
//    }
//}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • c# .net core中间件,生命周期
  • 物联网实训室的核心功能有哪些?
  • WebPack5.0 快速入门
  • 什么是diff算法?
  • C++20中的constinit说明符
  • 【数据结构】二叉树———Lesson2
  • 十七、【文本编辑器(三)】图像坐标变换
  • 低代码中间件学习体验分享:业务系统的创新引擎
  • 从 Pandas 到 Polars 十八:数据科学 2025,对未来几年内数据科学领域发展的预测或展望
  • 云监控(华为) | 实训学习day2(10)
  • Eclipse 内容辅助
  • 微信小程序学习之旅
  • 【iOS】—— 消息传递和消息转发
  • 团队高效地使用 Git 进行协同开发
  • 【常见开源库的二次开发】基于openssl的加密与解密——MD5算法源码解析(六)
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • 10个确保微服务与容器安全的最佳实践
  • 2017年终总结、随想
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • egg(89)--egg之redis的发布和订阅
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • ES6 学习笔记(一)let,const和解构赋值
  • ES6系统学习----从Apollo Client看解构赋值
  • Golang-长连接-状态推送
  • JS字符串转数字方法总结
  • Python3爬取英雄联盟英雄皮肤大图
  • tweak 支持第三方库
  • TypeScript迭代器
  • 闭包--闭包之tab栏切换(四)
  • 关于Java中分层中遇到的一些问题
  • ------- 计算机网络基础
  • 记录一下第一次使用npm
  • 普通函数和构造函数的区别
  • 三栏布局总结
  • 微信小程序实战练习(仿五洲到家微信版)
  • 优化 Vue 项目编译文件大小
  • 怎样选择前端框架
  • 正则学习笔记
  • 智能合约开发环境搭建及Hello World合约
  • 阿里云服务器如何修改远程端口?
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​比特币大跌的 2 个原因
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • $nextTick的使用场景介绍
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (9)STL算法之逆转旋转
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (done) 两个矩阵 “相似” 是什么意思?
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)Unity3DUnity3D在android下调试