当前位置: 首页 > 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() {
//        // ������Դ
//    }
//}

http://www.lryc.cn/news/402380.html

相关文章:

  • 仅两家!云原生向量数据库 PieCloudVector 全项通过信通院「可信数据库」评测
  • vue使用x6画流程图,简单使用
  • 低代码中间件学习体验分享:业务系统的创新引擎
  • 阿里云ACP云计算高级攻城狮通用知识
  • log4js node日志插件
  • 【MQTT(3)】开发一个客户端,QT-Android安卓手机版本
  • 大数据之数据抽取架构演变过程
  • [web]-反序列化-绕过__wakeup(转)
  • B树与B+树的区别
  • 机器人开源调度系统OpenTCS-6最新版本地源码运行
  • 云监控(华为) | 实训学习day3(10)
  • springMVC前后端请求参数绑定和传递
  • 【iOS】—— 消息传递和消息转发
  • 【Node.js】初识 Node.js
  • AWS backup服务和 RDS snapshot的关系
  • PDF转Word怎么快速转换?格式转换技巧分享
  • 浅谈:网络协议及网络连接
  • websocket-react使用
  • 【总结】nginx源码编译安装报错./configure: error: SSL modules require the OpenSSL library.
  • 昇思25天学习打卡营第15天|两个分类实验
  • 实践:Redis6.0配置文件解读
  • 【Go系列】Go语言的网络服务
  • CS110L(Rust)
  • 免费恢复软件有哪些?电脑免费使用的 5 大数据恢复软件
  • Flink History Server配置
  • ASPICE过程改进原则:确保汽车软件开发的卓越性能
  • HDU1005——Number Sequence,HDU1006——Tick and Tick,HDU1007——Quoit Design
  • uniapp form表单校验
  • 构建RSS订阅机器人:观察者模式的实践与创新
  • 芯片基础 | `wire`类型引发的学习