idea2021.3.3解决中文乱码的原因

本文指导如何在使用Java 1.8的IDEA中调整项目和文件编码,将GlobalEncoding、ProjectEncoding设置为GBK,并修改默认配置,确保UTF-8文件兼容,只需简单几步即可修复乱码问题。

在网上找了好多教程,自己也整了好久,终于知道怎么弄了,我的jdk是1.8的,因为之前用的是eclipse,对于eclipse jdk1.8是最稳定的,所以就用的jdk1.8,但是在idea中就不知道怎么回事了。

今天用idea发现是乱码的情况,我们只需要把这里改了就可以了:

Global Encoding ,Project Endoding改为GBK,还有你的文件是UTF-8,还有最下面的Default encoding for propertries files变成GBK,然后应用,重启就可以了。

### 命令行参数的作用 #### `-XX:TieredStopAtLevel=1` 此参数与 Java 的分层编译机制相关。Java 的分层编译是一种动态编译优化技术,它会根据代码的执行情况在不同的编译级别之间切换,以平衡编译时间和执行性能。`-XX:TieredStopAtLevel=1` 表示将分层编译停止在第 1 级。第 1 级通常是 C1 编译器(客户端编译器)的基本编译级别,使用这个参数可以避免 Java 虚拟机(JVM)进行更高级别的编译优化,适用于需要快速启动或者调试的场景。 #### `-noverify` 该参数用于关闭类文件的验证过程。在 Java 中,类加载器在加载类时会对类文件进行验证,以确保类文件的字节码符合 Java 虚拟机规范,不会对虚拟机的安全和稳定性造成威胁。使用 `-noverify` 可以跳过这个验证过程,从而加快类的加载速度,但会增加程序运行时的安全风险,因为可能会加载不符合规范的类文件。 #### `-Dspring.output.ansi.enabled=always` 这是一个系统属性设置参数。`-D` 用于设置 Java 系统属性,`spring.output.ansi.enabled` 是 Spring 框架的一个属性,用于控制是否启用 ANSI 颜色输出。`always` 表示始终启用 ANSI 颜色输出,这样在控制台输出的日志信息会带有颜色,便于区分不同类型的信息,提高可读性。 #### `-javaagent:D:\千峰教育\IDEA\IntelliJ IDEA 2021.3\lib\idea_rt.jar=8399:D:\千峰教育\IDEA\IntelliJ IDEA 2021.3\bin` 此参数用于指定 Java 代理。Java 代理是一种特殊的 Java 程序,它可以在目标 Java 程序运行之前或者运行过程中对其进行修改和增强。`idea_rt.jar` 是 IntelliJ IDEA 的运行时代理库,用于实现 IDE 与 Java 程序之间的通信,例如远程调试、代码覆盖率分析等功能。`8399` 是代理与 IDE 之间通信的端口号,`D:\千峰教育\IDEA\IntelliJ IDEA 2021.3\bin` 是代理库的路径。 #### `-Dcom.sun.management.jmxremote` 这个参数用于启用 Java 管理扩展(JMX)远程管理功能。JMX 是 Java 平台提供的一种管理和监控 Java 应用程序的标准机制,通过 JMX 可以远程监控和管理 Java 虚拟机的各种指标,如内存使用情况、线程状态等。启用 `jmxremote` 后,可以通过 JMX 客户端工具连接到 Java 程序,获取相关的管理信息。 ### 可能遇到的问题 #### 性能问题 - 使用 `-XX:TieredStopAtLevel=1` 可能会导致程序的执行性能下降,因为跳过了更高级别的编译优化。在对性能要求较高的生产环境中,不建议使用该参数。 - `-noverify` 虽然可以加快类的加载速度,但可能会引入安全风险,同时如果加载的类文件存在问题,可能会导致程序在运行时出现异常。 #### 兼容性问题 - `spring.output.ansi.enabled=always` 可能会在某些不支持 ANSI 颜色输出的终端中显示乱码或无法正常显示颜色,影响日志信息的可读性。 - `-javaagent` 参数指定的代理库路径和端口号可能会因为环境配置的变化而失效,导致 IDE 与 Java 程序之间的通信失败,无法正常进行调试等操作。 #### 安全问题 - `-noverify` 跳过了类文件的验证过程,可能会加载恶意的类文件,从而对系统的安全造成威胁。 - 启用 `-Dcom.sun.management.jmxremote` 后,如果没有正确配置安全策略,可能会导致 JMX 服务被非法访问,泄露系统的敏感信息。 ```java // 示例代码,假设这是一个简单的 Spring Boot 应用程序 import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class MySpringApp { public static void main(String[] args) { SpringApplication.run(MySpringApp.class, args); } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值